专栏首页流柯技术学院JMeter性能测试中控制业务比例

JMeter性能测试中控制业务比例

性能测试混合场景中,我们需要组合多个业务操作到场景中来。 比如有一个论坛的业务分布如下: 发布新帖与回复帖子的比例为2:3, 那么我们在JMeter测试计划中如何控制其比例呢?

可以通过以下两种方式解决: 多线程组方式

逻辑控制器控制

多线程组方式:

JMeter是用线程组来模拟虚拟用户的,JMeter支持一个计划中多个线程组。 利用这个特性我们可以把发布新帖业务放在一个线程组中,回帖业务放在另外一个线程组中。 通过控制线程数来达到需求的业务量的比例关系。

回帖线程组,添加90个线程; 发布新帖线程组,添加60个线程,刚好是3:2。

但,,,这只能是近似的,如果这两个事务的响应时间不一样,最终完成的业务数比例也会不一样。 当前线程数是在假定两个业务的响应时间一样的情况下,所以这完全是理想状况。 所以,这种方式控制并不完美。

控制器控制:

如果(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的比例达到。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Tomcat线程池配置

    打开/conf/server.xml文件,在Connector之前配置一个线程池:

    流柯
  • jstack+top定位性能问题

    定位性能问题,尤其是cpu使用率过高时,经常需要查找cpu消耗较高的线程,然后查看其堆栈,从而进入代码定位问题。    

    流柯
  • JMeter专题系列(一)工具简单介绍

         Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。它可以用来测试静态和动态资...

    流柯
  • 详解RocksDB如何通过组提交提升性能

    腾讯数据库技术
  • Thread源码解析

    我们上学的时候都知道线程有两种方式,要么继承Thread类,要么实现runable接口。根据我们上次对线程池的分析,发现我们对Thread类的理解还比较浅显。所...

    用户5602455
  • 想要靠外包刷题,结果却大跌眼镜

    select group_name,max(score) from table group by group_name order by group_name

    cxuan
  • Thread、ThreadLocal源码解析

    (1)首先看一下线程的构造方法,之后会说每种参数的用法,而所有的构造函数都会指向init方法

    Liusy
  • CLR线程池边缘情况测试

    设置工作者线程的下限数量5,上限数量10,给线程池一瞬间安排20个任务,每个任务占用线程时间18秒,然后观察线程池在对待线程数量的上下限的反应,以及完成一个任务...

    小蜜蜂
  • 多线程知识回顾

    以前看过不少JDK源码,最近回顾了一下笔记,所以在这里对几个很常见到的线程类做个记录。

    Java编程指南
  • Java多线程之细说线程池

    前言   在认识线程池之前,我们需要使用线程就去创建一个线程,但是我们会发现有一个问题:    如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就...

    用户1195962

扫码关注云+社区

领取腾讯云代金券