jmeter并发时比例控制的四种方法

最近项目中遇见了这么一个场景:
100个并发,20个人登录,80个人浏览。
 

这实际上就是一个比例控制的问题。
在网上浏览了一些资料,大概有这么几种方式,这里做一个归纳。

1.利用counter函数。

 

 

 

一个线程就理解成一个用户。
2个用户,每个用户迭代3次。
一共迭代6次

1.${__counter(true,i)}:只统计该用户的迭代次数,

 

2.${__counter(false,i)}:统计所有用户的迭代次数

 

 

 

如要求比例为2:8。
1,2,3,4,5,6,7,8,9,10。
这10个数中,能被5整除的有5,10;不能被5整除的有余下8个。所以比例为2:8。
写成数学式:
比例为20%,则${__counter(false,)}%5 ==0,
比例为80%,则${__counter(false,)}%5 !=0

若比例为3:7,
${__counter(false,)}%2 =1,则有1,3,5,7,9
${__counter(false,)}%4 =0,则有4,8
${__counter(false,)}%2 =1||${__counter(false,)}%4 =0的集合则为:1,3,4,5,7,8,9
${__counter(false,)}%2 ==0&&${__counter(false,)}%4=2的集合则有2,6,10
则结果为3:7.

说到底是一个数学问题。

这里以2:8为例。


 

 

 ${__counter(false,)}%2 =1 这种写法,等价于${__Random(1,10,)}%2==1


方法二:
有些童鞋若觉得通过数学的方法计算比例的方法比较绕,那么可以采用以下的方法。
思路:
取1-10的随机数randNo,
若randNo<=2,执行请求A;randNo>2,执行请求B;

 

这样A:B=2:8

 

若randNo<=3,执行请求A;randNo>3,执行请求B;
这样A:B=3:7

 

这样可以随心所欲的控制比例。

先在前置处理器中生成随机数,用于if控制器中作为条件,进行判断;


但是这种方法每次都要生成随机数,该请求也会对服务器造成一定的压力。

方法三:
思路和方法二一样,只有一点小区别;

 

是用的配置元件中Random Variable来生成随机数,取代了方法二中在beanshell中生成随机数。
这样就不用增加一个请求,用于生成随机数了,个人认为方法三是优于方法二的。

 

 

 

方法四:

利用switch controller来实现;

比例2:8,则0,0,1,1,1,1,1,1,1,1

switch的值等于0,执行请求2,switch的值为1执行请求8;


这种方法和方法二一样,需要先生成一个值作为参数传入;

优先考虑方法一和方法三,方法二、方法四了解下就可以了,拓展下思路~
————————————————
版权声明:本文为CSDN博主「Road_PL113」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34365469/article/details/80555627

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值