Jmeter变量传递

单线程上下文传递:
1
2
3
4
5
6
7
//在脚本中
vars.put("value", value)
vars.get("value")
//在非脚本中使用
${value}
//其他
vars.putObject("key", new Object())
多线程上下文传递(上一篇中参考地址中涉及到了):
1
2
3
4
5
6
7
8
//在脚本中
props.put("value", value)
props.get("value")
//在非脚本中使用
${value}
//其他
vars.putObject("key", new Object())
//vars 和props都是变量,均有如下方法

https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html

json提取器返回数组
1
2
3
4
5
6
7
8
names of variables: content
Match No: -1
JSON Path: $.data.content[*].id
//添加调试取样器
content_1=2926567
content_2=2926572
content_ALL=2926567,2926572
content_matchNr=2
json提取器返回数组引用
1
2
3
4
//添加计数器
Maxinum value: ${content_matchNr}
//引用
${__V(content_${num},)}
JSR223中获取请求返回
1
2
3
4
5
6
7
8
9
10
import groovy.json.JsonOutput;
import org.apache.commons.lang3.StringEscapeUtils;
// 字符串的形式读取返回数据
def data = prev.getResponseDataAsString();
// 格式化json数据
def json = JsonOutput.prettyPrint(data);
// 对数据进行Unicode转中文的解码
def ret = StringEscapeUtils.unescapeJava(json);
// 把我们转换后的数据设置为返回结果,编码设置为UTF-8
prev.setResponseData(ret, "UTF-8");
prev变量

https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html

beanshell拿线程数
1
2
3
4
String threadinfo = "${__BeanShell(ctx.getThread().getThreadName())}";
String[] ll = threadinfo.split("-");
vars.put("threadNo", ll[1]);


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!