jmeter控制多接口压测执行比例

1、利用__counter()函数搭配if控制器

如果想用${__counter(参数1,参数2)}函数,那么就要首先了解这个函数的作用是什么。

参数1:只能是true,false。如果您希望每个模拟用户的计数器保持独立并与其他用户分开,则为TRUE。 False是对全局请求进行计数。如果=false就是统计全部执行的线程,不论这个线程执行那个取样器都被统计。

参数2:用于重用此函数创建的值的引用名称。存储的值的格式为$ {refName}。这允许您保留一个计数器并在多个位置引用其值。就是你把计数器的值保存到一个变量中,可以使用这个变量。

这个需要结合if控制器一起使用,每个取样器被执行前需要if控制器做判断,本次调用是否可以执行这个取样器,由于if控制器的表达式必须返回的true或者是false,所以需要结合函数__jexl3来使用,这个函数就是转换表达式为boolean值。

 

demo中期望取样器getUserAppToken-an-30%调用量:getUserAppToken-user-70%调用量的执行比例是3:7,那么if控制器的表达式分别是:

getUserAppToken-an-30%对应的if控制器表达式:${__jexl3(${__counter(false,threadNum)}%10<3,)}

getUserAppToken-user-70%对应的if控制器表达式:${__jexl3(${__counter(false,threadNum)}%10>=3,)}

表达式的解释:连个接口的执行比例是3:7那么就是分成10分第一个方法执行30,第二个方法执行70,那么根据计数器的当前的值取10的模如果小于3就执行方法1如果大于3就执行方法2,这个是个数学题了,如果多个方法,比例不同那么还是需要先计算好这个比例。根据上面的设置执行方法,执行完后的结果如下图:

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值