【转载】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 ps:文章转自订阅号“测试那点事儿”,链接:https://mp.weixin.qq.com/s/qVD4iNO0QqRIwAIq9_E_Kw 方法二: 可 ...
- 【Jmeter】配置不同业务请求比例,应对综合场景压测
背景 在进行综合场景压测时,遇到了如何实现不同的请求所占比例不同的问题. 有人说将这些请求分别放到单独的线程组下,然后将线程组的线程数按照比例进行配置. 这种方法不是很好,因为服务器对不同的请求处理能 ...
- jmeter实现一次登录,多次业务请求(不同线程组间共享cookie和变量)
实现目的 很多时候,在进行性能测试时,需要先登录,然后再对需求的事务进行相关性能测试,此时的登录操作,并不在本次性能测试的范围内,所以我们只需要登录一次,然后获取登录成功后的cookie等,并将coo ...
- Jmeter 参数化请求实例
Jmeter 参数化请求实例 在jmeter中的请求可以参数化,其中参数化的方式有4种: 1.CSV Data Set Config 2.数据库 3.用户自定义变量 4.用jmeter中的函数获取参数 ...
- jmeter JDBC请求连接测试mysql数据库
所有jmeter基本组件功能本文不做介绍.jmeter要链接mysql数据库,首先得下载mysql jdbc驱动包(注:驱动包的版本一定要与你数据库的版本匹配,驱动版本低于mysql版本有可能会导致连 ...
- JMeter Dubbo请求插件jmeter-plugin-dubbo.jar
JMeter Dubbo请求插件jmeter-plugin-dubbo.jar by:授客 QQ:1033553122 测试环境 apache-jmeter-3.2 Dubbo 2.6.2 声明 ...
- jmeter --JDBC请求
转jmeter --JDBC请求 做JDBC请求,首先要了解这个JDBC对象是什么,然后寻找响应的数据库连接URL和数据库驱动. 数据库URL:jdbc:sqlserver://200.99.197. ...
- 利用Fiddler对Jmeter的请求进行抓包
前言 有时候,为了得到更详细的请求结果,我们可能需要使用Fiddler结合Jmeter来抓包分析,从而更好的辅助测试. 遇到的问题 这里以一个获取学生信息的接口为例进行说明. 当我在Jmeter里按接 ...
- 二、jmeter模拟请求头及监听器之结果树
一.模拟请求头 利用jmeter发送http请求时,被接收的服务端会对发送的该请求进行初步判断,如果不是web端发送的请求就会被打回导致请求不通,这时候需要模拟请求头,模拟正常的用户行为进行发送请求 ...
随机推荐
- MySQL高级学习笔记(七):MySql主从复制
文章目录 复制的基本原理 slave会从master读取binlog来进行数据同步 三步骤+原理图 复制的基本原则 复制的最大问题 一主一从常见配置 mysql版本一致且后台以服务运行(双方能够pin ...
- __attribute__((regparm(3))) from GNU C
在 x86 上,regparm 属性会传递一个数值给编译器,这个数值会告诉编译器要用多少个寄存器来传递函数参数(EAX, EDX 或 ECX,最多 3 个寄存器),通常情况下函数是用堆栈来传递参数的. ...
- CG-CTF CRYPTO部分wp
1,easybase64解密得flag 2,keyboard键盘码,在键盘上画画得flag:areuhack 3,异性相吸根据提示,写脚本 with open('密文.txt')as a: a=a.r ...
- Activity 通知
//通知图标 int icon = android.R.drawable.stat_notify_chat; //创建通知对象,icon通知图标,tickerText摘要,System.current ...
- Python第五节 元组
Python第八节 元组补充 元组从形式上看,和列表唯一不同的在于,列表是中括号,元组是小括号 元组内的元素不可更改 一. 创建 创建直接在小括号内写元素,用逗号隔开就好 创建空元祖只写一个小括号 元 ...
- Linux中目录结构以及VI编辑器常见的命令操作
1.每个目录的详细介绍,先放一张目录的整体结构在这里 /bin:是Binary的缩写,用于存放经常使用的命令 /sbin:s代表Super User,用于存放系统管理员使用的命令 /home:存放普通 ...
- JavaScript代码/ES6语法笔记一
1. new Set()/去重一个数组 let arr = [1, 2, 2, 3, 3]; let set = new Set(arr); let newArr = Array.from(set); ...
- 华视身份证读卡器获取uid号vue单文件组件版本
<template> <div id="app" ref="app"> <object ref="CertCtl&quo ...
- Web server failed to start. Port 8080 was already in use.
Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the ...
- Django 自定义扩展命令
import datetime import logger from django.conf import settings from django.db.models import Q from d ...