本章节主要讲解“JMeter执行顺序与作用域”的内容,类似于运算符或操作符的优先级,当JMeter测试中包含多个不同的元素时,哪些元素先执行,哪些元素后执行,并不是严格按照它们出现的先后顺序依次有序执行的,而是会遵循一定的内部规则,我们称之为JMeter元素的执行顺序。
一.执行顺序
一般情况下JMeter元素按照如下顺序依次执行:
- 0、 配置元件(Config Element)
- 1、前置处理器(Pre Processors)
- 2、定时器(Timer)
- 3、取样器(Sampler)
- 4、后置处理器(Post Processors)
- 5、断言(Assertions)
- 6、监听器(Listener)
- 注意,只有取样器结果不为空的情况下才会执行4、5、6。
一个简单的例子:
二.组件作用域
1、JMeter测试树元素分类
- 在JMeter的GUI界面,测试计划就是一颗树,Test Plan是树的根节点,其他元素都是其子孙从作用域的角度来看,测试树中的元素可以分为两大类:
01、具有层次结构的元素
- 这类元素的作用域与其所处的层次有关.
- 这类元素包括:配置元件,前置处理器,定时器,后置处理器,断言,监听器这6大组件.
02、具有顺序结构的元素
- 这类元素一般严格按照其出现的先后顺序依次有序的执行.
- 这类元素不会对其他元素的功能有影响,只是起控制作用,没有作用域的概念.这类元素包括取样器与逻辑控制器.
另外,还有剩下的线程组比较特殊,线程组也不会影响其他元素的功能,但是线程组的执行顺序是可以配置的,若测试计划下包含多个线程组,默认是并行执行的,若要按照其出现的顺序依次执行,需要在测试计划下勾选"Run Thread Groups consecutively (i.e. one at a time)".
2、作用域
- JMeter组件作用域指的是JMeter组件(配置元件,前置处理器,定时器,后置处理器,断言,监听器)起作用的范围,在此范围内组件是有效的,可以影响取样器的行为.
- 从前面的内容可以看出,JMeter作用域是针对组件而言的,只有层次结构的组件才有作用域的概念.
3、JMeter组件作用域规则
- 按照组件的父节点不同,组件的作用域有如下类型:
(1)取样器作用域
- 父节点为取样器的组件具有的作用域,仅对该取样器起作用;
(2)逻辑控制器作用域
- 父节点为逻辑控制器的组件具有的作用域,对该逻辑控制器下的所有取样器起作用;
(3)线程组作用域
- 父节点为线程组的组件具有的作用域,对该线程组下的所有取样器起作用;
(4)测试计划作用域
- 父节点为测试计划的组件具有的作用域,对测试计划下的所有取样器起作用。
1,如果在一个线程组里则是顺序执行
2,如果不在一个线程组里,就勾选独立运行各个线程组,在一个运行结束后启动下一个线程组
多个http请求产生的各自的聚合报告数据
在形成的聚合报告中,发现只有一行http请求统计数据,无法确定是哪一个http请求的测试结果,还是两个请求测试结果的综合数据。
于是上网搜相关资料,从jmeter官网中发现以下解释:
If other samplers and timers are in the same thread, these will increase the total time, and therefore reduce the throughput value. So two identical samplers with different names will have half the throughput of two samplers with the same name. It is important to choose the sampler labels correctly to get the best results from the Report.
大意是在同一线程组中,两个同名 samplers得出来的吞吐量值会是两个不同名samplers的两倍,改成不同label,将会有如下效果,即有多条记录。(截图来自jmeter官网)
注意,Aggregate Report 和 Summary Report运行结果都是累加的,因此,在每次运行测试前,先清空上一次运行结果。
https://blog.csdn.net/HelloGuoYing/article/details/110923975?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=1
https://zhuanlan.zhihu.com/p/403415035
https://www.cnblogs.com/longlongleg/p/15247812.html