JMeter 变量使用

一、变量

1、定义

变量名 varName

2、使用

${varName}

3、操作

可以在断言中使用

取值
vars.get("varName");

赋值
vars.put("varName","Successful");
get、put 只支持字符串格式文本。
删除
vars.remove("varName")。
getObject() 和 putObject() 支持其它的对象类型;
vars.putObject("varObj",new Object());

二、JSON Extractor

names of created Variable :保存变量名,后面使用${变量名}引用

JSON Path expressions:json path表达式,如:$.data.list[0].listId

Match No.(0 for Random):匹配数字(0代表随机,1代表第一个,-1代表所有)

Default Values:找不到时的默认值,一般设置为 NOT FOUND

Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作。

json path表达式

获取到records下所有列表的id
$.result[*].id
获取data里pid为数字123的列表里的id
$.data[?(@.pid==123)].id
$.data[?(@.pid==${pid})].id
获取data里name为字符串123的列表里的id
$.data[?(@.name=="123")].id
$.data[?(@.name=="${name}")].id
定义两个变量

JSONPath语法

JSONPathDescription
$根对象
@当前获取到的对象
.子元素运算符
..递归后代运算符
*通配符匹配所有项
[]下标运算符
[,]替换名称或数组索引作为数组的筛选
[start:end:step]数组切片运算符
?()通过表达式筛选数据
()表达式
JSONPathDescription
$.store.book[*].authorThe authors of all books in the store
$..authorAll authors
$.store.*All things in store, which are some books and a red bicycle
$.store..priceThe price of everything in the store
$..book[2]The third book
$..book[(@.length-1)]The last book via script subscript
$..book[-1:]The last book via slice
$..book[0,1]The first two books via subscript union
$..book[:2]The first two books via subscript array slice
$..book[?(@.isbn)]Filter all books with isbn number
$..book[?(@.price<10)]Filter all books cheaper than 10
$..book[?(@.price==8.95)]Filter all books that cost 8.95
$..book[?(@.price<30 && @.category=="fiction")]Filter all fiction books cheaper than 30
$..*All members of JSON structure

参考文档:

jsonpath – npm

JMeterVariables.html

在线测试器:https://www.jsonquerytool.com/

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注