Jmeter Bean Shell 的巧用——动态设置循环次数

需求:根据接口返回值(如9)循环去请求另外一个接口,如何设置循环次数,以及获取循环的index

解决思路:

实际解决:

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;
	
	String responseData = prev.getResponseDataAsString(); 
	log.info(responseData);
	JSONArray jsonArr = JSONObject.parseObject(responseData).getJSONArray("data");
	int siez = jsonArr.size();
	vars.putObject("size", siez + "");
	

 

${__BeanShell(Integer.parseInt(vars.getObject("size").toString()))}

注意点:

1. vars.put  或者 vars.putObject 都不可以直接设置int类型 所以获取的时候自然也不能获取到int 值,而计数的时候,需要设置最大值,以保证每次循环完都能从0开始  最大值一定要是int型 ,不然默认为0 

2. ${__BeanShell()} 主要就是使用到了Jmeter 的BeanShell函数,注意前面要加两个下划线

3. 例如vars 这样的变量能使用的API的地址

ctx 地址:http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html

vars 地址:http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html

prev地址:http://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html

4. 例如BeanShell这样的函数的

官方地址

http://jmeter.apache.org/usermanual/functions.html

或者查看翻译

http://www.testclass.net/jmeter/jmeter-doc-20/

或者参考这篇文章

https://www.jianshu.com/p/c66b846e2ada

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值