转载Jmeter业务请求比例1

Posted 奋斗的小鸟yan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转载Jmeter业务请求比例1相关的知识,希望对你有一定的参考价值。

ps:文章转自订阅号“测试那点事儿”,链接:https://mp.weixin.qq.com/s/qVD4iNO0QqRIwAIq9_E_Kw

在进行综合场景压测时,由于不同的请求,要求所占比例不同,那如何实现呢?

有人说将这些请求分别放到单独的线程组下,然后将线程组的线程数按照比例进行配置,这种方法不是很好,想想,不同的请求,服务器对其处理能力不同,有的处理快,有的处理慢。若采取上述方案的话,并不会按照我们预期的比例进行并发。

那么如何真实模拟按比例进行并发呢?技术分享

 

之前在使用LR进行过类似场景的测试,思路是:每次向服务器发出请求时,先生成一个随机数,我们对随机数的取值划分若干个范围(对应若干个业务请求),然后对随机数进行判断,当随机数落在某个范围内,就可以执行对应的请求。比如,我们压测的过程中,要访问百度和besttest官网,并且请求比例是2:8,那么可以规定随机数取值1<=random<=100,然后再划分2个范围:当随机数的取值在0到20之间,则访问百度;当随机数取值在20和100之间,则访问besttest官网;根据概率论,当取样量足够大的话,访问百度和besttest官网的请求比例会比较接近2:8.也可以在LR在场景设计里设置不同的请求的比例,来实现。

 

那么Jmeter能否实现这种要求,答案是可以的,下面我们使用Jmeter结合刚才的例子进行讲解

 

1

首先,我们需要一个能够生成随机数的函数,刚好jmeter提供了这个函数

在测试计划下,我们右键“添加”——配置原件——Random Variable

 

技术分享

 

2

设置随机数的变量名称为test,设置取值范围0到100

 

技术分享

 

3

添加控制条件,控制执行请求,添加线程组,添加两个如果(if)控制器,然后在两个控制器下,分别添加2个http请求(访问besttest官网的),当随机数取值在20和100之间,则访问besttest官网;

右键线程组添加“逻辑控制器”——如果(if)控制器

 

技术分享

 

4

添加判断条件,如果随机数<=80

 

技术分享

 

5

添加访问besttest官网请求

 

技术分享

 

 

6

添加判断条件,如果随机数>80

 

技术分享

 

7

添加访问百度请求

 

技术分享

 

8

我们在线程组下添加,展示随机数取值情况

 

技术分享

 

 

10

运行jmeter验证,取值是否按照比例请求,我们设置一个线程数,让其循环10次,结果如下,访问besttest官网8次,果然其中访问百度2次

 

技术分享

 

技术分享

ps:个人觉得此方法不是特别精确,但毕竟是百分比,也可以完成

以上是关于转载Jmeter业务请求比例1的主要内容,如果未能解决你的问题,请参考以下文章

JMeter性能测试中控制业务比例

JMeter笔记1 | JMeter简介及体系结构

jmeter通过if控制器控制业务比例

jmeter压测混合业务有先后顺序怎么处理

Jmeter断言,关联,参数化

Jmeter按比例分配Api压测