Jmeter可以通过鼠标拖拽来随意改变元件之间的顺序以及元件的层级关系,随着元件所在域的不同,在执行时候,会有不同效果
层级关系和元件类型决定了在测试计划中各元件的执行顺序。
1)元件的作用域:
jmeter有八种可执行的元件,测试计划和线程组不算元件。
其中取样器(sampler)是不与其他元件发生交互的。所以不存在作用域。
逻辑控制器(Logic Controller):只对其子节点下的取样器和逻辑控制器起作用
剩下的六个元件,配置元件(Config Elements)、前置处理器(Pre-Porcessors)、定时器(Timer)、后置处理器(Post-Porcessors)、断言(Assirtions)、监听器(Listener)则分为两种情况
第一种情况,当这六个元件的父节点不是取样器时,则对这个父节点下所有取样器生效,不管这个父节点下有多少子节点,以下图中,这个http信息头管理为例,会对之后所有的http请求生效。
当这六个元件的父节点是取样器时,只对父节点这个取样器生效。以下图中,这个http信息头管理器为例,只会对其父节点的http请求生效
2)元件的执行顺序
测试计划中的元件按照以下顺序执行:
1)配置元件
2)前置取样器
3)定时器
4)取样器
5)后置取样器(除非取样器返回结果为空)
6)断言(除非取样器返回结果为空)
7)监听器(除非取样器返回结果为空)
前置处理器,后置处理器,断言都是只对取样器作用的。如果在他们的作用域范围内没有取样器,则他们不会被执行
如果同一作用域有多个同一类型的元件,则按照在测试计划中的上下顺序进行执行