性能测试中,经常需要对多个接口按一定比例分配来模拟真实的业务场景,即混合场景压力测试。比如金融产品购买的场景中,用户登录之后,购买理财产品,查看交易记录,查看持仓和收益的比例为2:3:4,在使用Jmeter测试工具进行压力测试时,如何控制其比例呢?
一般来说,可以采用多线程组的方式,通过在一个测试计划中建立多个线程组,通过控制每个线程组的线程数比例来达到比例控制的目的。这种测试方法的前提是假定一个混合压力测试场景中每个接口的响应都一样,而一般情况下每个接口的响应时间都不一致,使用这种方法来控制比例很不理想。
下面介绍一种通过IF逻辑控制来控制混合压力测试中接口比例的方法。
思路:通过IF逻辑控制器的if表达式来控制比例,简要的代码如下:
{
num=__counter(true,);//__counter函数,可以用来获取当前的迭代次数
if(num%9<2)//控制比例为2/9
{
createFinanceOrder();
}
if(num%9>=2&&num%9<=4)//控制比例为3/9
{
queryFinanceProductOrderList();
}
if(num%9<>4)//控制比例为4/9
{
queryPositionPincome();
}
}
Jmeter脚本实现方法:在采样器的上一级添加“逻辑控制器”->“