JMeter-BeansShell之处理逻辑关系

前言

需求:

1、调用商品接口获取sku信息

2、判断库存,如果库存大于500,调用buy接口购买10个商品,否则购买1个商品 

一:添加商品http请求,参数id的值调用函数助手进行参数化

二:添加后置处理器-JSON提取器或正则表达式提取器(这里使用JSON提取器)提取商品接口返回结果stock的动态值,保存的变量名为myStock

三:添加购买http请求,写入正确的接口地址和参数,添加后置处理器-BeanShell PreProcessor,写入以下代码

// 获取json提取器保存下来的Stock值
String myStock = vars.get("myStock");
// 转换为int 
int iStock = Integer.parseInt(myStock);
// 判断库存 
if (iStock > 500){ 
    // 如果>500,定义一个变量buyNum=10
    vars.put("buyNum","10");
}else{
     //否则变量buyNum=1
    vars.put("buyNum","1"); 
}

四:因为定义变量为buyNum,所以购买接口的参数num的值为${buyNum}

五:因为商品接口的返回结果stock的值是动态的,所以要线程组属性需要设置多次循环,方面更好的看到效果,这里设置了10次循环

最后,添加后置处理器-Debug sampler 和察看结果树,点击运行,可以看到结果:当myStock>500时,buyNum=10,也就是库存大于500,购买10个商品;

当myStock<500时,buyNum=1,也就是库存小于500,就购买1个商品

 

原文地址:https://www.cnblogs.com/zhangwuxuan/p/12337902.html