JMeter中如何保证POST、GET、DELETE API按指定顺序循环执行
JMeter API顺序执行问题解决方案
问题1:同线程组放置三类采样器是否可行?
可行,且是当前场景的最优解。
JMeter的执行规则为:单个线程内部的采样器会严格按排列顺序执行,你之前查到的「多线程下无法保证顺序」是指跨线程的执行时序,和单线程内的请求顺序无关。
按此方案配置即可解决DELETE找不到记录的问题:
- 将POST、GET、DELETE按顺序放在同一个线程组内
- 若需要传递POST生成的记录ID给后续请求,直接在POST采样器下添加
JSON提取器/正则表达式提取器即可,提取的变量默认线程隔离,多线程场景下不会出现变量串用 - 线程数设为n、循环次数设为n,每个线程都会完整执行POST→GET→DELETE的流程,DELETE操作的目标永远是当前线程刚通过POST创建的记录,不会出现资源冲突
问题2:多线程组循环执行的需求是否可实现?
可以实现,操作步骤如下:
- 勾选测试计划根节点的
Run Thread Groups consecutively (i.e. one after another)配置,保证线程组串行启动 - 外层新增
循环控制器,循环次数设置为需要的n次,将三个线程组全部拖入循环控制器下 - 解决跨线程组参数传递问题:普通JMeter变量为线程组隔离,需要通过
setProperty函数将POST返回的记录ID设为全局属性,再通过property函数在GET、DELETE线程组中读取,多线程场景下需要给属性名增加线程ID之类的唯一标识,避免不同线程的参数覆盖
注意:该方案逻辑复杂度高,容易出现参数串用、时序异常的问题,除非你有三类API需要配置不同并发数、不同启动策略的特殊需求,否则优先推荐使用单线程组方案。
内容的提问来源于stack exchange,提问作者Prabhakaran
相关产品推荐
相关产品推荐

