一、变量
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语法
| JSONPath | Description |
|---|---|
$ | 根对象 |
@ | 当前获取到的对象 |
. | 子元素运算符 |
.. | 递归后代运算符 |
* | 通配符匹配所有项 |
[] | 下标运算符 |
[,] | 替换名称或数组索引作为数组的筛选 |
[start:end:step] | 数组切片运算符 |
?() | 通过表达式筛选数据 |
() | 表达式 |
| JSONPath | Description |
|---|---|
$.store.book[*].author | The authors of all books in the store |
$..author | All authors |
$.store.* | All things in store, which are some books and a red bicycle |
$.store..price | The 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 |
参考文档:
