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

转:https://blog.csdn.net/qq_34365469/article/details/80555627
最近项目中遇见了这么一个场景:
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%,则KaTeX parse error: Expected group after '_' at position 2: {_̲_counter(false,…{__counter(false,)}%5 !=0

若比例为3:7,
${__counter(false,)}%2 =1,则有1,3,5,7,9
${__counter(false,)}%4 =0,则有4,8
KaTeX parse error: Expected group after '_' at position 2: {_̲_counter(false,…{__counter(false,)}%4 =0的集合则为:1,3,4,5,7,8,9
KaTeX parse error: Expected group after '_' at position 2: {_̲_counter(false,…{__counter(false,)}%4=2的集合则有2,6,10
则结果为3:7.

说到底是一个数学问题。

这里以2:8为例。

KaTeX parse error: Expected group after '_' at position 2: {_̲_counter(false,…{__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;

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

优先考虑方法一和方法三,方法二、方法四了解下就可以了,拓展下思路~


作者:Road_PL113
来源:CSDN
原文:https://blog.csdn.net/qq_34365469/article/details/80555627
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/qq_39991552/article/details/88226412