Jmeter多业务混合场景如何设置各业务所占并发比例
在进行多业务混合场景测试中,需要分配每个场景占比。
具体有两种方式:
1.多线程组方式;
2.逻辑控制器控制;
第一种:
jmeter一个测试计划可以添加多个线程组,我们把不同的业务放在不同的线程组中,通过控制线程数来控制业务占比。比如实际业务中需要线程组A、线程组B和线程组C的比例为:3:2:1,那么我们可以设置线程组A的线程数为90,线程组B的线程数为60,线程组C的线程数为30,这样就可以粗略的达到要求的比例。但是如果三个事务的响应时间不一样,最终完成的业务数也会有所差异。假设当前线程数的响应时间是完全一致的,才会有3:2:1的业务占比,当然这个是理想状态。
例如测试需求如下:对业务A、业务B、业务C、业务D、业务E,5个业务按并发比例要求进行100个用户并发的压力测试;

JMeter是可以实现上述需求的,测试方案如下:
1.创建一个测试计划;
2.在该计划下添加5个线程组,分别是对业务A、业务B、业务C、业务D、业务E;
3.分别设置线程组业务A、业务B、业务C、业务D、业务E的线程数为:40、10、20、25、5(总并发量为100,按并发比例设置并发用户数)

第二种方式:
jmeter的函数对话框中${__counter(True,)}函数获取当前迭代的次数。迭代次数也能获取到,那如何保持3:2的比例呢?这就是一个数学问题了。不卖观子,直接上代码:${__counter(true,)}%2==1||${__counter(true,)}%3==0上面_counter(true,)是获取当前迭代次数,%是取余,也就是是除2余1与3,整除时执行开新帖。以9次迭代为例:回帖9次,1,3,5,6,7,9次迭代时都会开新帖,回帖刚好是6次。9:6=3:2基本上达到了3:2的比例。

方案二:采用jmeter本身自带的计算器,不失为一个好的方法。但是针对一些复杂的场景,这个计算式有点难写,
比如:3:2这个比例,我看到网上的实现都是${__counter(true,)}%2==1||${__counter(true,)}%3==0,
这种计算方式就比较复杂了,那有没有简单一点实现方式呢?
其实是有的。
当参数为true时,每个用户有自己的计数器,比如10个线程组,100个loop,这是计数器的值为1-100.
当选择false,全局计算器,10个线程组,100个loop,计数器值为1-10000
比如下面场景:

那么表达式应该怎么写呢?
上面有3的倍数,5的倍数,那么取其最小公倍数15,按照15分割。
均使用If控制器,表达式分别为:
a: ${__counter(false,)}%15 <=5
b: ${__counter(false,)}%15 >5
c: ${__counter(false,)}%15==1
d: ${__counter(false,)}%15>1&& ${__counter(false,)}%15<=5
总结规律:
按照最小的公倍数分割,每个控制器取他们应占的份数。
上面的3:2的实现手段,就更容易了,一个占2/5,一个占3/5
Jmeter多业务混合场景如何设置各业务所占并发比例的更多相关文章
- jmeter混合场景的多种实现方式比较
性能测试设计混合场景,一般有几种方式,分别是每个场景设置一个线程组,使用if控制器,使用吞吐量控制器.不同的方式实现机制不一样,哪种方式相比而言更好呢?下面做一比较. 下面以混合访问百度首页和必应首页 ...
- Jmeter混合场景压力测试
性能测试设计混合场景,一般有几种方式 分别是:1:每个场景设置一个线程组:2:使用if控制器:3:使用吞吐量控制器. 不同的方式实现机制不一样,个人觉得"使用吞吐量控制器"比较方便 ...
- 使用jmeter做简单的场景设计
使用jmeter做简单的场景设计 Jmeter: Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试.我之所以选择它,最重要的一点就是----开源 个人 ...
- 【NS2】有线和无线混合场景 (转载)
1. 创建简单的有线-无线混合场景 上一节建立的无线仿真可以支持多跳adhoc网络或wirelesslan.但是,我们可能需要对经过有线网络连接的多个无线网络进行仿真,或者说我们需要对有线-无线混合网 ...
- mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法
mariadb 10 多源复制(Multi-source replication) 业务使用场景分析,及使用方法 官方mysql一个slave只能对应一个master,mariadb 10开始支持多源 ...
- loadrunner 场景设计-设置结果文件保存路径
场景设计-设置结果文件保存路径 by:授客 QQ:1033553122 Results->Results settings Results Name 结果文件夹名称 Directory 指定结果 ...
- LoadRunner中Action的迭代次数的设置和运行场景中设置
LoadRunner中Action的迭代次数的设置和运行场景中设置 LoadRunner是怎么重复迭代和怎么增加并发运行的呢? 另外,在参数化时,对于一次压力测试中均只能用一次的资源应该怎么参数化呢? ...
- iOS Sprite Kit教程之场景的设置
iOS Sprite Kit教程之场景的设置 Sprite Kit中设置场景 在图2.8所示的效果中,可以看到新增的场景是没有任何内容的,本节将讲解对场景的三个设置,即颜色的设置.显示模式的设置以及测 ...
- jmeter ---单个server最大连接数的设置
为了模拟浏览器关于建立多少并行的链接设置,在jmeter中也有相关的设置 在HTTP请求设置页面,勾选“Use concurrent pool" 选型,并将pool size设置为所需的并发 ...
随机推荐
- 腾讯微服务框架Tars的初体验
最近研究了一下腾讯的微服务体系开发框架. 官方的搭建过程:https://github.com/TarsCloud/Tars/blob/master/Install.zh.md 自己填的坑: 不得不说 ...
- 洛谷P4213(杜教筛)
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 3e6 + 3; ...
- Zabbix导入MySQL数据库报错ERROR 1046 (3D000) at line 1: No database selected
使用如下命令导入Zabbix数据库时报错 解决办法: 1.先把原始的数据库压缩包备份 cd /usr/share/doc/zabbix-server-mysql-4.0.7/ cp create.sq ...
- js实现文本框自动显示两位小数
转自https://blog.csdn.net/qiji2011/article/details/81270552 1.js: //保留2位小数,如:2,会在2后面补上00.即2.00 functio ...
- 开发Electron可能用到的工具
nodejs:搭载谷歌v8内核的高性能的node环境npm:包管理工具webpack:模块打包器jQuery:js必备库Bootstrap:css必备库react:用于构建用户界面的库vue:构建数据 ...
- 【Selenium-WebDriver实战篇】基于java的selenium之验证码识别内容
==================================================================================================== ...
- Python tkinter模块弹出窗口及传值回到主窗口操作详解
这篇文章主要介绍了Python tkinter模块弹出窗口及传值回到主窗口操作,结合实例形式分析了Python使用tkinter模块实现的弹出窗口及参数传递相关操作技巧,需要的朋友可以参考下 本文实例 ...
- modbus-poll和modbus-slave工具的学习使用——环境搭建
在modbus的学习工具中,非modbus-poll和modbus-slave莫属了,在电脑上模拟的过程中,两者缺一不可 ,当然还需要虚拟串口工具:Configure Virtual Serial P ...
- (尚018-第二章2.1)Vue使用vue-cli创建模板项目
2.1.1 1)vue-cli是官方提供的脚手架工具(注意:脚手架本身是个库) 2)github:https://github.com/vuejs/vue-cli 3)作用:从https://gith ...
- mov offset和lea的区别
mov offset和lea的区别 原文地址:https://www.cnblogs.com/fanzi2009/archive/2011/11/29/2267725.html 全局变量取地址用mo ...