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

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

开新帖与回复帖子的比例为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的比例。

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

  1. 数据查询和业务流分开_索格非SOGEFI:EDI 业务场景详解之生成DESADV

    上文我们讲解了索格非(SOGEFI)的EDI项目需求和DELFOR(物料需求计划)的业务场景,现在从相反的业务角度,详细介绍一下供应商生成并回复DESADV(发货通知)的业务场景. 扩展阅读: &qu ...

  2. idea使用junit测试_在JUnit测试中使用Builder模式

    idea使用junit测试 这并不是要成为技术含量很高的职位. 这篇文章的目的是为您提供一些指导,以使您的JUnit测试生活更加轻松,使您能够在几分钟内编写复杂的测试场景,并获得具有高度可读性的测试. ...

  3. cdn与gnd接地_浪涌测试中通讯端口TVS管损坏机理分析

    1.引言 独学而无友,则孤陋而寡闻. 本文以测试中通讯端口防护器件损坏为例,进行损坏机理分析.不同测试方法带来的影响分析.不同应用场景的测试方法选择,以及SURGE防护设计中的注意点等内容进行分析说明 ...

  4. sql 注射_只能在测试中注射吗?

    sql 注射 本文是关于测试设计和可测试性的一些想法. 我们与我的儿子讨论了一些问题,他的儿子是Java的初级开发人员,目前在匈牙利的EPAM(我工作的同一家公司,但在另一家公司工作)受雇并学习. 本 ...

  5. 注射器视觉检测_只能在测试中注射吗?

    注射器视觉检测 本文是关于测试设计和可测试性的一些想法. 我们与我的儿子讨论了一些问题,他的儿子是Java的初级开发人员,目前在匈牙利的EPAM(我工作的同一家公司,但在另一家子公司)工作和学习. 本 ...

  6. jmeter 高并发测试报告_使用 JMeter 进行压力测试

    原文连接:使用 JMeter 进行压力测试 一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率:预估系统的承载能力 ...

  7. jmeter提取mysql数据_通过jmeter读取数据库数据,并取值作为请求的入参

    为提升测试技能,督促自己学习.故写了这篇文章.测试小白一枚,最近感觉达到了自己认为的瓶颈期.总是有想法,想突破,但是无从入手.工具类用过fiddler.jmeter.charels.postman.. ...

  8. jmeter 导出聚合报告_使用Jmeter聚合报告生成对比图表

    背景 最近在帮别的项目组执行性能测试,使用的工具是Jmeter.接口录制和参数化前一个人已经做好了,我主要的工作就是执行脚本,撰写测试报告.事情并不复杂,可做起来却极为耗时. 首先,由于有6组账号,分 ...

  9. 队列管理器连接数设置_详解!基于Redis解决业务场景中延迟队列的应用实践,你不得不服啊...

    一.业务概述 我们假定设置两个队列,一个队列维护正式工单,另一个队列维护挂起工单.对于挂起操作,我们通过Redis设置key有效时间,当key失效时,客户端监听失效事件,获取工单,实现 挂起工单队列的 ...

最新文章

  1. 你以为的BUG--BFC给你解决!
  2. 程序员大佬的简历和普通程序员有啥区别?
  3. 【期望】【高斯消元】图上游走(金牌导航 期望-6)
  4. mysql error 变量_mysql 变量问题
  5. switchpreference 事件_Vue 3 自定义事件
  6. TikTok 与 Oracle 的交易将开创两个危险的先例
  7. 《构建之法》第4章读后感
  8. 代码检查工具 Sonar 安装使用
  9. adb命令从手机端复制数据库文件到PC
  10. aut0cad2010卸载工具_解决软件注册表卸载不干净导致的autocad2010无法安装问题。...
  11. pycharm搜索不到安装包
  12. 使用.net进行视频格式转换
  13. linux命令行大于号、小于号、双大于号、双小于号
  14. app提交到iTunes失败
  15. 周伟焜挥别IBM 一个时代结束
  16. python绘制简单彩虹图_python绘制简单彩虹图
  17. does not specify a Swift version and none of the targets (`packager`) integrating it have the `SWIFT
  18. 通信科技人员职业道德
  19. 谱聚类(Spectral Clustering)算法介绍
  20. 8K视频处理和工作原理,8K视频处理分析

热门文章

  1. matlab和python哪个运行快_MATLAB比Python快吗?
  2. 谈谈NLP下一个主战场:万亿参数的预训练模型!
  3. 即时配送的ETA问题之亿级样本特征构造实践
  4. 领域应用 | 人工智能+知识图谱:如何规整海量金融大数据?
  5. python 实现组合数
  6. Android官方开发文档Training系列课程中文版:管理音频播放之控制APP的音量与播放
  7. A Comprehensive Survey on Graph Neural Networks
  8. 规则引导的知识图谱联合嵌入方法
  9. MySQL GROUP BY 语句
  10. 输入流IS和输出流OS学习总结