场景使用
json extractor后置处理器用在返回格式为json的HTTP请求中,用来获取返回的json中的某个值。并保存成变量供后面的请求进行调用或断言等。
使用方法
1.常规操作
路径:选择HTTP请求>添加>后置处理器>JSON Extractor,如下图所示:
要获取接口返回的数据,json格式如下:
获取该参数的方式有两种,表达式不同而已
方式一:
通过Debug Sampler在查看结果树中查看是否有获取成功值,如下:
方式二:
通过Debug Sampler在查看结果树中查看是否有获取成功值,如下:
先实践操作了一波,可能还不知道这个元件上的参数如何设置,介绍如下:
Variable names(名称):提取器的名称
Apply to(应用范围):
Main sample and sub-samples:应用于主sample及子sample
Main sample only:默认的是这个,应用于主sample
Sub-samples only:应用于子sample
JMeter Variable :应用于变量命名的内容
Variable names:保存的变量名,后面使用${Variable names}引用
JSON Path expressions:上一步中调试通过的json path表达式
Match Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有)
Default Values:找不到时默认值,一般设置为NOT FOUND
Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作
注意点:
当json提取器要提取两个值(或两个以上)的时候,一定要填写默认值,不然会报错“Mismatch between number of variables, json expressions and default values” ;反之:只提取两个值,默认值填了三个,也会报该错
JSON Path expressions中的参数详细如下:
JsonPath |
描述 |
$ |
根节点 |
@ |
当前节点 |
.or[] |
子节点 |
.. |
选择所有符合条件的节点 |
* |
所有节点 |
[] |
迭代器标示,如数组下标 |
[,] |
支持迭代器中做多选 |
[start:end:step] |
数组切片运算符 |
?() |
支持过滤操作 |
() |
支持表达式计算 |
2.查看结果树中操作
在查看结果树中设置如下,选择JSON Path Tester
在JSON Path expressions输入框中输入$.[0].carouselOID,并点击Test,可以调试JSON参数是否获取成功,如下图所示:
下方显示出调试结果,这样就可以把该表达式写入到JSON提取器中,提高调试效率。
最后来两个很普通的参数提示示例:
JSON格式如下:
JSON提取器设置如下:
JSON格式如下:
JSON提取器设置如下:
记录点滴,只为更好的成长,加油!