Jmeter 线程组 ThreadGroup
一、线程组功能介绍
setUPGroup与tearDownGroup
如果你熟悉loadrunner,那你应该知道loadrunner的脚本中除了 action里是真正的脚本核心内容,还有进行初始化操作的init脚本和测试完毕后对应的end脚本块。那么这里setup thread group 和 teardown thread group 就是分别指这两部分。
————————————————
- setUPGroup线程组在测试任务ThreadGroup 运行前先被运行。通常用在运行测试任务前,做初始化工作。例如建立数据库连接初始分化工作。
- tearDownGroup线程组在测试任务ThreadGroup 运行结束后被运行。通常用来做清理测试脏数据、登出、关闭资源等工作。例如关闭数据库连接。
ThreadGroup
ThreadGroup线程组通过设置线程数来模拟并发用户数,是虚拟用户的发起点。同时支持运行次数、以及定义调度运行时间和延迟启动。
二、ThreadGroup界面介绍
setUPGroup、tearDownGroup与ThreadGroup线程组UI界面功能完全相同,下面只介绍ThreadGroup界面。
访问路径【TestPlan】--【Thread (User)】--【Thread Group】
| ThreadGroup元素名称 | ThreadGroup功能介绍 |
| Name | 定义线程组名称 |
| Comments | 描述线程组注释 |
| Action to be taken after a Sample error | 取样器发生错误要执行哪个动作,包含下面五个动作 |
| Continue | 取样器发生错误,忽略错误 继续执行 |
| Start Next Thread Loop | 取样器发生错误,忽略错误 停止当前线程循环,执行下一个循环 |
| Stop Thread | 当前线程运行完毕后,停止所有线程 |
| Stop Test | 停止测试计划,如果一个测试计划下有多个线程组,那么所有线程组都会停止 |
| Stop Test Now | 整个测试计划会立即停止运行 |
| Thread Properties | 线程属性包含如下几个设置 |
| Number of Thread(user) | 设置线程数,可以在测试计划的用户自定义变量中设置变量,在这里引用测试计划的变量 ${uesr} |
| ramp-up period | 设置启动所有线程需要的时间 |
| Loop Count | 设置线程组中的每个线程循环次数 |
| In finite | 勾选此项表示线程组中的线程永久执行下去,直到手动停止测试计划 |
| same user on each iteration | 每次迭代使用相同的线程 |
| Delay Thread creation until needed | 如果勾选了此选项,那么线程只会在合适的需要用到的时候创建 |
| Specify Thread lifetime | 线程调度器包含下面两个选项 |
| Duration(seconds) | 设置线程组运行多长时间,单位是秒 |
| StartUp delay(seconds) | 设置线程启动延时时间,单位是秒 |
三、设置运行时间
通过Specify Thread lifetime线程调度器设置线程运行时间周期。需要注意Loop Count 必须勾选In finite永久,否则即使设置了Duration运行时间,也不会生效。只会根据Loop Count设置的次数运行。
@同时设置循环次数和运行时间
@运行结果
没有执行3秒钟,而是执行了一次。
@ 设置循环次数为永久,运行时间为3秒。
@运行结果
执行了3秒钟,自动停止线程组。
四、setUPGroup与tearDownGroup 运行效果
在测试计划中分别添加setUPGroup与tearDownGroup,运行测试计划。查看结果树会发现setUPGroup 在ThreadGroup运行前先运行,tearDownGroup 在ThreadGroup运行结束后再运行。