性能测试工具 jmeter 测试混合场景如何控制业务比例

会飞的猪 · 2018年12月26日 · 最后由 L-junhao 回复于 2022年02月23日 · 6522 次阅读

方法汇总
1、Throughput Controller 方法
例子:控制接口比例为 9:1,则设置接口 1 的比例值为 90,设置接口 2 的比例值为 10.
配置如下图所示:
接口 1:

接口 2:

测试结果如下图所示:

如上图所示:接口 1 的样本数和接口 2 的样本数的比例为 2831/381=8.9 约等于 9:1
2、IF 控制器 + 迭代次数
jmeter 有个参数记录迭代次数 __counter(true,)
例子:如何我想控制两个接口的比例为 1:2,那么 IF 控制器可以配置如下表达式${__jexl3(${__counter(true,)}%3!=1,)} 和${__jexl3(${__counter(true,)}%3==1,)}
配置如下图所示:

测试结果如下所示:

如上图所示 test1 和 test2 的比例 137/269 约等于 1:2

3、线程组控制线程数比例
如果每个接口的响应时间都差不多,那么可以通过线程组控制线程数的比例方式,来控制压测比例

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 12 条回复 时间 点赞

不错,不错,学到了😀

使用吞吐量控制器也可以做到:

simonpatrick 回复

我试了一下不可以,如图我觉得设置没问题呀

这种方法也不行

小白 回复

你这个应该是 Per User 勾选的问题
Per User=线程组
如果你线程组是 10 个,运行 2 次,设置 20% 并勾选 Per User,此时 Per User 都要跑一次也就是 10,如果不勾选以上的情况就是 10*2*20%=4
你试下不勾选查看聚合报告就明白了

橘子2018 回复

解决了谢谢,但是楼主说的方法还是不可以

小白 回复

看你的截图显示的不对啊。可以把脚本发我,我试一下哦

会飞的猪 回复

怎么发给你

可以用更简单的方式,用 for 循环的方式控制比例,效果是一样的,最终还是要以服务端的请求比例为主。

仅楼主可见
小白 回复

我跟你遇到了一样的问题,问一下你是怎么解决的

想问一下楼主,如果几个场景都是复杂场景包含多个请求的话,要使用说明方法控制比列呢?

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