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源码分析