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;


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

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

练习资料传送门:
点击打开链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用JMeter进行并发测试,可能会遇到一些常见的错误。以下是一些可能导致错误的原因和解决方法: 1. 线程组设置不正确:并发测试中,线程组的配置非常重要。如果线程组的线程数设置过高,可能会导致服务器负载过大,从而出现错误。建议根据服务器的性能和负载能力来设置合适的线程数。 2. 资源限制:并发测试可能会消耗大量的系统资源,如CPU、内存和网络带宽等。如果系统资源不足,可能会导致出错。可以通过增加服务器资源或者减少并发请求数来解决这个问题。 3. 请求超:在并发测试中,服务器可能无法及响应所有的请求,导致请求超。可以通过增加请求超间来解决这个问题。 4. 并发冲突:在并发测试中,多个线程同对同一个资源进行访问可能会导致并发冲突。可以通过使用同步机制或者排队等待来解决这个问题。 5. 数据库连接问题:如果并发测试涉及到数据库操作,可能会出现数据库连接问题。可以增加数据库连接池的大小或者优化数据库查询语句来解决这个问题。 6. 网络问题:并发测试可能会受到网络延迟、丢包等问题的影响。可以通过增加网络带宽或者优化网络配置来解决这个问题。 7. JMeter配置问题:有候错误可能是由于JMeter的配置问题引起的。可以检查JMeter的配置文件和插件是否正确安装,并且确保使用的是最新版本的JMeter。 以上是一些可能导致并发测试出错的常见原因和解决方法。如果你有具体的错误信息或者其他相关问题,请提供更多详细信息,我将尽力帮助你解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值