【转载】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:个人觉得此方法不是特别精确,但毕竟是百分比,也可以完成

时间: 2024-08-02 09:32:42

【转载】Jmeter业务请求比例1的相关文章

【Jmeter】配置不同业务请求比例,应对综合场景压测

背景 在进行综合场景压测时,遇到了如何实现不同的请求所占比例不同的问题. 有人说将这些请求分别放到单独的线程组下,然后将线程组的线程数按照比例进行配置. 这种方法不是很好,因为服务器对不同的请求处理能力不同,有的处理快,有的处理慢.若采取上述方案的话,并不会按照我们预期的比例进行并发. 那么如何真实模拟按比例进行并发呢?此前使用LR进行过类似场景的测试时的思路如下: 每次向服务器发出请求时,先生成一个随机数,我们对随机数的取值划分若干个范围(对应若干个业务请求),然后对随机数进行判断,当随机数落

jmeter实现一次登录,多次业务请求

实现目的 很多时候,在进行性能测试时,需要先登录,然后再对需求的事务进行相关性能测试,此时的登录操作,并不在本次性能测试的范围内,所以我们只需要登录一次,然后获取登录成功后的cookie等,并将cookie等鉴权的值,传给cookie管理器,供后续所有的业务请求使用,这样即可实现直接对需求的事务进行性能测试,并监控相关资源利用和程序性能指标. 脚本实现 设置Http Cookie管理器,用于存储当前脚本的cookie信息,并传给后续的相关请求使用 设置高斯随机定时器,用于产生随机等待时间 设置初

Jmeter Java请求

一.为什么要使用Java请求 现有的post . get 无法对加解密及鉴权的接口进行测试,需要进行封装,然后再请求,怎么进行封装?通常使用的方式是使用httpclient 工具类型来操作,下面举一个简单的Java自定义测试代码例子,使用Java编译器编写测试代码 二.完成以下几部曲即可 1.打开IDE(这里我使用的是 eclipse Luna 4.3),创建一个Java工程项目名为enterprise 2.从Jmeter的安装目录lib/ext中拷贝两个文件ApacheJMeter_core.

Jmeter 参数化请求实例

Jmeter 参数化请求实例 在jmeter中的请求可以参数化,其中参数化的方式有4种: 1.CSV Data Set Config 2.数据库 3.用户自定义变量 4.用jmeter中的函数获取参数值 第一种方式:CSV Data Set Config 1.创建一个data.txt文件,内容如下: 101010100,北京 101010200,海淀 101010300,朝阳 请求天气的URL为:GET http://www.weather.com.cn/weather/101010100.sh

jmeter JDBC请求连接测试mysql数据库

所有jmeter基本组件功能本文不做介绍.jmeter要链接mysql数据库,首先得下载mysql jdbc驱动包(注:驱动包的版本一定要与你数据库的版本匹配,驱动版本低于mysql版本有可能会导致连接失败报错)我这里下载的是mysql-connector-java-5.1.7-bin.jar 1.准备好驱动包后,需要把jdbc驱动jar包引入测试计划.操作步骤如下图: 点击测试计划-->点击浏览-->选中mysql驱动jar包-->打开 2 OK,这样驱动就引入进来了.接下来新建一个线

Jmeter执行请求报Socket closed错误

1.Jmeter执行请求报Socket closed错误: 看这个:https://blog.csdn.net/weixin_33937913/article/details/86361549 2.Jmeter测试上传图片接口,一直报图片不存在: 消息头多加了一个Content-Type,去掉该消息头,在消息体里加一个use multipart/form-data for post 原文地址:https://www.cnblogs.com/drct/p/11067784.html

利用Fiddler对Jmeter的请求进行抓包

前言 有时候,为了得到更详细的请求结果,我们可能需要使用Fiddler结合Jmeter来抓包分析,从而更好的辅助测试. 遇到的问题 这里以一个获取学生信息的接口为例进行说明. 当我在Jmeter里按接口文档正确设置好请求,打开Fiddler之后,发现无法抓到Jmeter的请求. 从图片可以看到,Fiddler并没有抓到Jmeter发送的请求. 问题分析 简单分析一下,Fiddler在使用过程中是以代理Web服务器的形式进行的,代理地址为127.0.0.1,端口为8888,它在运行时会监听8888

Jmeter -- JDBC请求(sqlserver)

做JDBC请求,首先要了解这个JDBC对象是什么,然后寻找响应的数据库连接URL和数据库驱动. 数据库URL:jdbc:sqlserver://200.99.197.190:1433;databaseName=ebank 数据库驱动:com.microsoft.sqlserver.jdbc.SQLServerDriver 下载sqljdbc4.jar放在apache-jmeter-3.0\lib下面 Sqlserver驱动包(jar)名称: Microsoft+SQL+Server+JDBC+D

jmeter http请求界面解释

一个HTTP请求有着许多的配置参数,下面将详细介绍: 名称:本属性用于标识一个取样器,建议使用一个有意义的名称. 注释:对于测试没有任何作用,仅用户记录用户可读的注释信息. 服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址. 端口号:目标服务器的端口号,默认值为80 . 协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https ,默认值为http . 方法:发送HTTP请求的方法,可用方法包括GET.POST.HEAD.PUT.OPTIONS.TRACE.DELE