上一节课我们学习到“JMeter构建测试的元素”,相信大家都已经掌握了,那我们今天接下来这节课学习“JMeter的执行顺序与作用域”,小编分开来给大家讲解。(学习不要走神哦,开始了~)
一、执行顺序
类似于运算符或操作符的优先级,当JMeter测试中包含多个不同的元素时,哪些元素先执行,哪些元素后执行,并不是严格按照它们出现的先后顺序依次有序执行的,而是会遵循一定的内部规则。
我们称之为JMeter元素的执行顺序,一般情况下JMeter元素按照如下顺序依次执行:
0、配置元件
1、定时器
2、 前置处理器
3、 取样器
4、后置处理器
5、 断言
6、 监听器
举一个简单的例子:
其中①为取样器、②为配置元件、③为定时器、④为监听器、⑤为前置处理器、⑥为后置处理器、⑦为断言。执行顺序为:②-->③-->⑤-->①-->⑥-->⑦-->④
二、作用域
JMeter测试树中的元素可以分为两类:层次结构与顺序结构层次结构的元素包括:配置元件、定时器、前置处理器、后置处理器、断言与监听器;顺序结构的元素包括:取样器和逻辑控制器。一般而言顺序结构的元素没有作用域的概念,而作用域只针对具有层次结构的组件。
JMeter作用域就是组件对取样器有效的区域,在这个区域内组件是起作用的。
1、层次结构的元素作用域
具有层次结构的元素的作用域规则如下:
(1)若其父节点为取样器,则其只对该取样器起作用;
(2)若其父节点为逻辑控制器,则会影响逻辑控制器下的所有取样器;
(3)若其父节点为线程组,则会影响线程组下的所有取样器;
(4)若其父节点为测试计划,则会影响测试计划下的所有取样器。
举一些例子:
1、父节点为取样器
-Test Plan
-Thread Group
HTTP Request1
Response Assertion
View Results Treel
HTTP Request2
View Results Tree2
解析:
“Response Assertion”断言的父节点为“HTTP Request1”取样器,则只会对“HTTP Request1”进行断言,不会断言“HTTPRequest2”取样器。
2、父节点为逻辑控制器
-Test Plan
-Thread Group
-Loop Controller
Response Assertion
-HTTP Request1
View Results Treel
-HTTP Request2
View Results Tree2
解析:
“Response Assertion”断言的父节点为“Loop Controller”逻辑控制器,“Response Assertion”会对逻辑控制下的“HTTPRequest1”取样器和“HTTP Request2”取样器进行断言。
3、父节点为线程组
-Test Plan
-Thread Group
Response Assertion
-HTTP Request1
View Results Treel
-Loop Controller
-HTTP Request2
View Results Tree2
-HTTP Request3
View Results Tree3
解析:
“Response Assertion”断言的父节点为“Thread Group”线程组,“Response Assertion”会对线程组下的“HTTP Request1”取样器、“HTTP Request2”取样器与“HTTP Request3”取样器进行断言。
4、父节点为测试计划
-Test Plan
Response Assertion
-Thread Groupl
-HTTP Request1
View Results Treel
-Loop Controller
-HTTP Request2
View Results Tree2
-Thread Group2
-HTTP Request3
View Results Tree3
解析:
“Response Assertion”断言的父节点为“Test Plan”测试计划,“Response Assertion”会对测试计划下的“HTTPRequest1”取样器、“HTTP Request2”取样器与“HTTPRequest3”进行断言。
好啦!这节课就学到这里,学习完之后记得把内容消化一下,把学到的知识点归纳总结成自己的方法,这样才能灵活运用到工作中。如有不明白的同学,可以点击在线客服的对话框,和老师进行在线一对一学习哦。
下期课程预告:“一个简单的JMeter测试计划”,大家记得来一起学习,不能偷懒。