jmeter 不同场景 比例_在JMeter测试中如何根据业务场景来控制运行比例

性能测试混合场景中,我们需要组合多个业务操作到场景中来。

比如有一个论坛的业务分布如下:

开新帖与回复帖子的比例为2:3,

那么我们在JMeter测试计划中如何控制其比例呢?

下面我们介绍两种方式:

1.多线程组方式

2.逻辑控制器控制

多线程组方式:

我们知道JMeter是用线程组来模拟虚拟用户的,JMeter还可以支持一个计划中多个线程组。

利用这个特性我们可以把开新帖业务放在一个线程组中,回帖业务放在另外一个线程组中。

为了制造出业务量的比例关系,我们通过控制线程数来达到效果。如下图:

ReplayTopic为回帖线程组,添加4个线程;

SendTopic为开新帖线程组,添加1个线程,刚好是4:1

当然,这只能是近似的,如果这两个事务的响应时间不一样,最终完成的业务数比例也会不一样。

当前线程数是在假定两个业务的响应时间一样的情况下,所以这完全是理想状况。

可以看出,这种方式控制并不完美。

下面我们用第2种方式:

控制器控制

下图是一个IF控制器,IF控制器可以使用表达式来做为条件,这样我们事以获取迭代次数来决定

是回帖还是开帖,比如一共3次迭代,第1次与第3次迭代时开新帖,1,2,3次迭代都会进行回帖

接下来我们就要获取迭代次数,JMeter函数助手提供了一个__counter函数,可以用来获取当前的

迭代次数。

好,我们思路有了,迭代次数也能获取到,那如何保持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的比例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489979.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python爬取新浪新闻首页_学习了《python网络爬虫实战》第一个爬虫,爬取新浪新闻...

请安装anaconda,其中附带的spyder方便运行完查看变量 1.进入cmd控制台, 输入 pip install BeautifulSoup4 pip install requests 2.编写代码,代码已经很清晰了,直接运行不会报错并有成功的结果def getNewsDetail(newsUrl): import requests f…

sql去重查询

例如,从 "Websites" 表的 "country" 列中选取唯一不同的值 SELECT DISTINCT country FROM Websites;

计算机和人类“看”法不同,但这重要么?

来源:大数据文摘“看”这个动作一直被认为是生物所独有的。当工程师第一次“教”计算机“看”这个动作时,他们理所当然地认为计算机可以像人类眼睛一样进行观看。约克大学(York University)计算机科学家约翰托索斯(Joh…

获取项目根路径,并在其下创建一个名称为userData 的目录。

NSArray *pathsNSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); NSString *documentsDirectory [paths objectAtIndex:0]; // 创建文件系统管理器 NSFileManager *fileManager [[NSFileManageralloc] init]; // 判断userData 目录是否存在 …

svn拉取文件合并_SVN的分支使用

使用过git版本管理的同学大部分都使用过分支,git创建切换分支非常直观,SVN则相对来说没有那么强的分支的概念。本文主要介绍SVN中的分支使用。SVN默认的生成目录如下通常 branches 目录下为开发分支,tags 目录为标签目录,trunk 为…

python编程入门单例_python实现单例模式怎么写啊?

这个网上有很多的,你可以搜一搜,单例设计模式很多面试官都会考的,最好是记住一两个,我下面写一个例子给你看一下 使用__new__方法 在__new__方法中把类实例绑定到类变量_instance上,如果cls._instance为None表示该类还…

超级智能的定义,一个已经诞生并不断深刻影响人类的新智能

来源:今日头条在人工智能领域,有一个不成熟的观点,认为当人工智能发展成为“在几乎所有领域都大大超过人类认知表现的任何智力”时,这时人工智能可以被视作超级人工智能或超级智能。但这种从人工智能延伸的超级智能因为在理论和实…

MySQL修改数据表存储引擎的3种方法介绍

看你的mysql现在已提供什么存储引擎:mysql> show engines;看你的mysql当前默认的存储引擎:mysql> show variables like %storage_engine%;你要看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):mysql> show create table 表名; MySQL作…

linux suse 共享目录_SUSE环境下YAST源(连接共享目录)

很多台SUSE11版本的服务器都需要安装net-snmp包,我不想一个劲地插拔光盘,于是想办法写了这篇短文背景说明:实际情况是,有很多台suse11版本的服务器都需要安装net-snmp包,suse下的Yast服务可以解决包之间的依赖关系问题…

2019年人工智能行业现状与发展趋势报告

来源:前瞻产业研究院未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网…

python自动化运维书籍推荐_《Python 自动化运维:技术与最佳实践》

第一部分 基础篇 第1章 系统基础信息模块详解 2 1.1 系统性能信息模块psutil 2 1.1.1 获取系统性能信息 3 1.1.2 系统进程管理方法 6 1.2 实用的IP地址处理模块IPy 7 1.2.1 IP地址、网段的基本处理 8 1.2.2 多网络计算方法详解 9 1.3 DNS处理模块dnspython 11 1.3.1 模块域名解…

memcache中的add和set方法区别

相信大家对memcache都不陌生,在项目中也经常使用memcache作为缓存方案,那么在使用过程中有没有发现为什么memcahce有两个添加缓 存的方法:一个是add,一个是set,那么你知道这2个方法有什么不同吗?什么时候该…

npm 全局安装vuecli报错_前端脚手架CLI生成模版命令工具(包括,npm包的发布,脚手架的搭建,注意事项,优化等)...

NodeJs的出现,让前端工程化的理念不断深入,正在向正规军靠近。先是带来了Gulp、Webpack等强大的构建工具,随后又出现了vue-cli和create-react-app等完善的脚手架,提供了完整的项目架构,让我们可以更多的关注业务&#…

sql的order by使用细节

SELECT column_name,column_name FROM table_name ORDER BY column_name,column_name ASC|DESC; 1、ORDER BY 多列的时候,先按照第一个column name排序,第一个column name相同时按照第二个column name排序 2、desc 或者 asc 只对它紧跟着的第一个列名有…

最新《科学》重磅!科学家喊你赶快关心自己的孩子:缺乏母爱会导致大脑基因改变...

来源:精准医学人人都有父母,而绝大多数人最终都将成为父母。在一切向“钱”看的蛮荒时代,人们往往似乎并不是那么重视对孩子的爱和关心,以为可以花钱就能够轻易解决这一问题。而解决方案也大多数千篇一律,无非是给他们…

用python画个三维地球_如何用Python制作三维散点图?

你可以用matplotlib为此,matplotlib有一个mplot3d模块,它将完全按照您的要求执行。from matplotlib import pyplot from mpl_toolkits.mplot3d import Axes3D import random fig pyplot.figure() ax Axes3D(fig) sequence_containing_x_vals list(ran…

计算机软考笔记之《数据库基础》

1、引言 1.1数据库和平面文件 数据的存储传统上是使用单独没有关联的文件,有时称为平面文件。 数据库是一些平面文件被组合成一个实体。 1.2数据库是什么? 数据库是一个组织内被应用程序使用的逻辑相一致的相关数据的集合。 1.3数据库的优点 1冗余较少 2…

ajax传值 实体类_ajax传参到实体类对应字段

之前看公司的代码,从页面ajax传参数到接口类,接口类用一个实体接收。我一直以为c#会自动识别,赋值到同名的字段。我曾和朋友讨论过,双方辩论。朋友认为c#没有这种功能,没有这样高级匹配的机制。而我因为在项目中使用的…

sql的BETWEEN用于文本值

选取 name 以介于 A 和 H 之间字母开始的所有网站 SELECT * FROM Websites WHERE name BETWEEN A AND H;