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设置为所需的并发 ...
随机推荐
- 常用docker管理UI
1. HumpBacks 特性 Web UI Supporting, Easy to use. Container Grouping and Isolation. Container Upgrades ...
- Gerrit和Gitlab服务器的集成
Gerrit和Gitlab服务器的集成 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.安装gitlab 详情请参考:https://www.cnblogs.com/yinzhe ...
- 转一篇关于epoll模型的博文
以前就看过这篇关于epoll文章,现在又翻出来看了一下,很久不看的知识真是容易忘啊. 原文出处: http://blog.163.com/huchengsz@126/blog/static/73483 ...
- Codeforces B. Minimum Possible LCM(贪心数论)
题目描述: B. Minimum Possible LCM time limit per test 4 seconds memory limit per test 1024 megabytes inp ...
- 手写简单的php生成Html网页
这个是基本功,以前用到laravel及thinkphp时,这一步,都被设置好了吧. 这里只依靠纯的php环境,而没有任何框架, 而框架,只是将这一切规范化,加快代码效率及减小沟通成本,维护升级也方便, ...
- c++实现按行读取文本文件
包含头文件fstream既可以读又可以写(我的理解是头文件fstream中包含ifstream和ofstream),可以同时创建ifstream对象和ofstream对象,分别实现读写:也可以直接创建 ...
- 关于微信小程序在ios中无法调起摄像头问题
这几天关于微信小程序开发关于wx.chooseVideo组件问题,因为自己一直是安卓手机上测试,可以调取摄像头,但是应用在ios上无法打开摄像头,困扰了好多天,经过反复查看官方文档,今天总算修复了这个 ...
- npm包之npm-check-updates
检查npm的依赖包是否有比较新的版本 安装 npm i -g npm-check-updates 使用 ncu --help // 查看相关命令 ncu // 检查当前项目中有没有哪些依赖包可更新 n ...
- 【NOIP 2017】宝藏 D2 T2
参考From 传送门 写的很清晰了 AC code: #include <bits/stdc++.h> using namespace std; const int MAXN = 12; ...
- Problem I. Wiki with Special Poker Cards
Problem I. Wiki with Special Poker CardsInput file: standard input Time limit: 1 secondOutput file: ...