接口测试 JMeter 中,如何实现遍历变量列表的同时并行发送请求?

Hill_Jiang · 2023年11月23日 · 最后由 大卡卡 回复于 2024年06月01日 · 4986 次阅读

如图,我通过 JSON 提取器获取了一个 regionIds 列表,现在想遍历每个 regionId 的值、并且并行发送请求、每个请求的请求体包含 regionId 的值

但是我使用 paraller controller+foreach 控制器,无论是 paraller controller 建在 foreach 控制器下,还是 foreach 控制器建在 paraller controller 下,结果都还是串行发的请求,怎么实现并行呢?

或者,不用 paraller controller 控制器,用多线程组的方式,如何将所有的 regionId 都定义为全局变量传递到下一个线程组呢?在线程组中又如何实现遍历变量列表?

共收到 5 条回复 时间 点赞

foreach 是一个单独的控制器,会被视作一个任务,paraller controller 控制器只能收集到第一层,不能深入到 http sample 然后去收集,分配线程执行,我这边建议你,可以发这个 list 分成多块,然后每块再使用 foreach 控制器包起来,这样也某种成都可以达到多线程

蹲一下,学习学习

自己摸索了个方法解决了,用 BeanShell 脚本存储 regionId 列表到 csv 文件,并且把列表长度设为全局变量,新建个线程组,线程数设为 ${__property(regionNum)} ,再用 CSV Data Set Config 读出来,传到请求参数里

感觉绕了一大圈,也不知道本身性能开销会不会很大,还需要进一步测试

如果有大佬有更好的解决方案可以一起交流讨论下

我记得直接用后置提取器 +foreach 就行了。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册