转载:https://www.cnblogs.com/du-hong/p/13217399.html
JSON 提取器可以使用JSON-PATH语法从JSON格式的响应中提取数据。
该后处理器与正则表达式提取器非常相似。必须将其放置为HTTP Sampler或具有JSON响应的任何其他取样器的子级,可以以非常简单的方式提取JSON文本内容。
1、我们先来看看这个JSON提取器长得是啥样子,路径:线程组 > 添加 > 后置处理器 > JSON提取器,如下图所示:
2、关键参数说明如下:
Name:名称,可以随意设置,甚至为空;
Comments:注释,可随意设置,可以为空;
Update Once Per Iteration:标识是否每轮迭代更新一次元素;
Apply to(应用范围):
Main sample and sub-samples:应用于主sample及子sample
Main sample only:默认的是这个,应用于主sample
Sub-samples only:应用于子sample
JMeter Variable Name to use:应用于变量命名的内容
Name of created Variable:保存的变量名,后面使用${Variable names}引用
JSON Path Expression:json表达式
Match No.(0 or Random):匹配的值是哪一个,默认不填写是获取符合条件的第一个,这个与正则表达式的类似(0为随机、N为获取第N个、-1获取所有)
Compute comcatemation var(suffix_ALL):如果发现许多结果,插件将使用“,”分隔符将它们连接起来,并将其存储在名为_ALL的var中
Default Values:当没有获取到参数值时的默认值
3、JSON path expression 语法
JsonPath | 描述 |
---|---|
$ | 根节点 |
@ | 当前节点 |
.or[] | 子节点 |
… | 选择所有符合条件的节点 |
* | 所有节点 |
[] | 迭代器标示,如数组下标 |
[,] | 支持迭代器中做多选 |
[start: end :step] | 数组切片运算符 |
?() | 支持过滤操作 |
() | 支持表达式计算 |
实例
1、新建测试计划,线程组下添加天气预报接口取样器,如下图所示:
2、然后再在取样器下添加JSON提取器,如下图所示:
3、紧接着再添加一个取样器 度娘,用来获取提取的status,提取出来的值用来传参,如下图所示:
4、配置好以后,点击“保存”,运行JMeter,查看表格结果,如下图所示:
天气预报接口请求结果:
度娘请求结果: