JMeter之简单控制线程组(Thread Group)组件的执行顺序

JMeter的线程组包括setUp、tearDown和常规线程组,执行顺序为setUp>线程组>tearDown。默认多线程组并发执行,全局变量可能存在可见性问题。通过设置TestPlan的RunThreadGroupsconsecutively选项,可按顺序执行线程组,确保变量正确引用。

jmeter的线程类型一共有3种分别是setUp线程组、tearDown线程组和线程组

他们的执行优先级为 setUp线程组 > 线程组(Thread Group) > tearDown线程组

当存在多个线程组(Thread Group),jmeter默认是同时执行的,也就是说是无序的,此时如果在线程组1中设置了全局变量,在线程组2中可能是无法被引用的。

可以勾选TestPlan(测试计划) 中的RunThread Groups consecutively(独立运行每个组件组),让线程组执行结束后再执行下一个线程组,就可以简单的控制线程组的执行顺序。


-事必有法,然后有成- 最后祝大家早日达到测试的天花板!



 以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

### JMeter 线程组执行顺序设置与控制 在同一测试计划内,多个线程组默认情况下会并行执行。为了使线程组按照特定顺序依次执行,在测试计划属性中需勾选“独立运行每个线程组”,这使得各线程组能够依照定义的次序逐一启动[^2]。 对于更复杂的执行逻辑,JMeter 提供了 `setUp` 和 `tearDown` 特殊类型的线程组。这些特殊线程组允许在所有其他标准线程组之前或之后执行某些操作。具体来说: - **setUp 线程组**:这类线程组会在任何常规线程组开始前被执行,适用于完成必要的前置条件设定,如初始化数据库连接、登录服务或是准备测试数据等任务[^4]。 - **tearDown 线程组**:相反地,在全部正常线程组完成后才会触发此类型线程组的工作流程,通常用来处理资源释放、清除临时文件或其他收尾性质的任务。 当涉及到具体的线程组内部组件时,通过组合使用不同的控制器(例如 If 控制器和 While 控制器),可以进一步精细化控制各个采样器之间的相对位置及其激活时机。特别是针对那些希望延迟启动或者有条件跳过的部分,这种方法显得尤为重要[^5]。 #### 设置示例 假设存在三个主要功能模块 A, B 和 C 需要按先后顺序调用,并且还需要额外加入 token 获取作为预备步骤 D: 1. 创建名为 "D - Token Acquisition" 的 setUp 线程组; 2. 定义普通线程组分别对应于业务流程中的A、B、C环节; 3. 勾选测试计划下的选项以确保上述四个线程组依序而非并发的方式被调度; 4. 如果有必要的话,在后续两个及以上连续执行线程组之间插入适当的等待机制或者其他形式的时间管理措施来保障预期的行为模式得以实现。 ```python # Python伪代码展示概念性的配置过程 test_plan = jm.TestPlan() test_plan.setRunThreadGroupsSequentially(True) setup_thread_group = jm.ThreadGroup(name="Setup Thread Group") main_a_thread_group = jm.ThreadGroup(name="Main A Thread Group") main_b_thread_group = jm.ThreadGroup(name="Main B Thread Group") main_c_thread_group = jm.ThreadGroup(name="Main C Thread Group") test_plan.add(setup_thread_group) test_plan.add(main_a_thread_group) test_plan.add(main_b_thread_group) test_plan.add(main_c_thread_group) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值