Jmeter之BeansShell之处理逻辑关系

Posted 一步一脚印丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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个商品

 

 

以上是关于Jmeter之BeansShell之处理逻辑关系的主要内容,如果未能解决你的问题,请参考以下文章

Jmeter之逻辑控制器(Logic Controller)

Jmeter之逻辑控制器(Logic Controller)

性能工具之JMeter5.0核心类StandardJMeterEngine源码分析

Jmeter之逻辑控制器(Logic Controller)

Jmeter之逻辑控制器

Jmeter 之 If 逻辑控制器