flash 网站欣赏,重庆网站建设圣矢,芜湖龙湖建设网站,pc 网站开发设计性能测试混合场景中#xff0c;我们需要组合多个业务操作到场景中来。比如有一个论坛的业务分布如下#xff1a;开新帖与回复帖子的比例为2:3#xff0c;那么我们在JMeter测试计划中如何控制其比例呢#xff1f;下面我们介绍两种方式#xff1a;1.多线程组方式2.逻辑控制器…性能测试混合场景中我们需要组合多个业务操作到场景中来。比如有一个论坛的业务分布如下开新帖与回复帖子的比例为2:3那么我们在JMeter测试计划中如何控制其比例呢下面我们介绍两种方式1.多线程组方式2.逻辑控制器控制多线程组方式我们知道JMeter是用线程组来模拟虚拟用户的JMeter还可以支持一个计划中多个线程组。利用这个特性我们可以把开新帖业务放在一个线程组中回帖业务放在另外一个线程组中。为了制造出业务量的比例关系我们通过控制线程数来达到效果。如下图ReplayTopic为回帖线程组添加4个线程SendTopic为开新帖线程组添加1个线程刚好是41当然这只能是近似的如果这两个事务的响应时间不一样最终完成的业务数比例也会不一样。当前线程数是在假定两个业务的响应时间一样的情况下所以这完全是理想状况。可以看出这种方式控制并不完美。下面我们用第2种方式控制器控制下图是一个IF控制器IF控制器可以使用表达式来做为条件这样我们事以获取迭代次数来决定是回帖还是开帖比如一共3次迭代第1次与第3次迭代时开新帖123次迭代都会进行回帖接下来我们就要获取迭代次数JMeter函数助手提供了一个__counter函数可以用来获取当前的迭代次数。好我们思路有了迭代次数也能获取到那如何保持32的比例呢这就是一个数学问题了。不卖观子直接上代码${__counter(true,)}%21||${__counter(true,)}%30上面__counter(true,)是获取当前迭代次数%是取余也就是除2余1与3整除时执行开新帖。以9次迭代为例回帖9次135679 次迭代时都会开新帖回刚好是6次9632基本上保护了32的比例。