一、JSON JMESPath Extractor 参数说明
可以通过 JmesPath 语法提取所需要的值,功能非常强大(注意取样器返回必须为 Json);底层采用 JmesPath 的 java 版实现 [https://github.com/burtcorp/jmespath-java],具体语法可以参考:https://jmespath.org/tutorial.html
右键 >>> 添加 >>> 后置处理器 >>> JSON JMESPath Extractor
Apply to
-
Main sample and sub-samples:匹配范围包括当前父取样器并覆盖子取样器
-
Main sample only:默认;匹配范围是当前父取样器
-
Sub-samples only :仅匹配子取样器
-
JMeter Variable Name to use:支持对 Jemter变量值进行匹配(输入框内可输入jmeter的变量名称)
(1)、引用名称(Name of created variables):请求要引用的变量名称,如填写 result_num
(2)、JMESPath expressions:JMESPath表达式
(3)、匹配数字(0代表随机)(Match No. (0 for Random)):0 代表随机取值,n取第几个匹配值,-1匹配所有;比如:取1表示报文中的第1个对象匹配,取2表示报文中的第2个对象匹配
(4)、缺省值(Default Value):如果参数没有取得到值,那默认给一个值让它取
二、准备工作
慕慕生鲜: http://111.231.103.117/#/login
-
进入网页后,登录,页面提供了账户和密码
-
搜索框输入“虾”
-
右键检查或按F12,打开调试工具,点击搜索
三、测试计划设计
(1)、测试计划右键 <<< 添加 <<< 配置元件 <<< HTTP请求默认值
-
协议:http
-
服务器名称或IP:111.231.103.117
-
端口:8083
-
内容编码:utf-8
(2)、在网页中,调试中点击网络,找到请求,点击标头找到请求标头,复制所有请求标头
(3)、测试计划右键 <<< 添加 <<< 配置元件 <<< HTTP信息头管理器
- 点击从剪切板添加,会将复制的值自动添加进去
(4)、测试计划右键 <<< 添加 <<< 线程(用户)<<< 线程组
(5)、在网页中,调试中点击网络,找到请求,点击负载,复制参数值
(6)、线程组右键 <<< 添加 <<< 取样器 <<< HTTP请求
-
协议:GET
-
路径:/product/list
-
点击从剪切板添加,会自动添加;也可手动添加
(7)、HTTP请求右键 <<< 添加 <<< 后置处理器 <<< JSON JMESPath Extractor
-
勾选 Main sample only
-
Name of created variable:var1
参数名为:var1
- JMESPath expressions:data.list[*].name
JMESPath 具体语法可以参考:https://jmespath.org/tutorial.html
- 匹配数字(0代表随机):2
2代表第二个值,比如存在两个能匹配上的值
(8)、线程组右键 <<< 添加 <<< 监听器 <<< 查看结果树
(9)、线程组右键 <<< 添加 <<< 取样器 <<< 调试取样器
(10)、点击启动,点击查看结果树,查看请求及取样器信息
HTTP请求中的响应数据,响应体中的数据可以看到,一共有两个符合查询规则的数据
(11)、点击调试取样器,查看响应数据下的响应体
var1:参数名,获取到的参数值;显示的是第二个值
var1_matchNr:匹配的个数 2