一、正则表达式提取器(Regular Expression Extractor)参数说明
接口需要关联时,可以通过正则表达式提取所需要的值
右键 >>> 添加 >>> 后置处理器 >>> 正则表达式提取器(Regular Expression Extractor)
Apply to
-
Main sample and sub-samples:匹配范围包括当前父取样器并覆盖子取样器
-
Main sample only:默认;匹配范围是当前父取样器
-
Sub-samples only :仅匹配子取样器
-
JMeter Variable Name to use:支持对 Jemter变量值进行匹配(输入框内可输入jmeter的变量名称)
要检查的响应字段(Filed to check)
-
主体(Body):响应数据的主体部分
-
Body(unescaped):针对替换了的响应码部分
-
Body as a Document:返回内容作为一个文档进行匹配
-
Response Headers:响应头部分
-
Request Headers:请求头部分
-
URL:URL链接
-
响应代码(Response Code):响应码。如HTTP返回码200代表成功
-
响应信息(Resopnse Message):响应信息。比如处理成功返回“成功”字样,或者“OK”字样
(1)、引用名称(Name of created variable):请求要引用的变量名称,如填写 result_num
(2)、正则表达式(Regular Expression):业务对应的正则表达式
"id":"(.*?)","name":(.\*?)"
(3)、模板(Template):对应正则表达式的组号,从1开始;比如:$1$ 表示取 id 的值,$2$ 表示取 name 的值,也就是对应到表达式中的第几个括号
(4)、匹配数字(0代表随机)(Match No. (0 for Random):0 代表随机取值,n取第几个匹配值,-1匹配所有;比如:取1表示报文中的第1个对象匹配,取2表示报文中的第2个对象匹配
(5)、缺省值(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请求右键 <<< 添加 <<< 后置处理器 <<< 正则表达式提取器
- 勾选 Main sample and sub-samples
匹配范围包括当前父采样器并覆盖子采样器
- 引用名称:userParam
变量名称:userParam
- 正则表达式:
"id":(.*?),"name":"(.*?)
(.*?):表示匹配任意字符
HTTP请求返回的响应数据响应体中的返回数据格式:[{"id":39,"name":"即食大虾","image":"http://111.231.103.117:8083/images/new-xia.png","detail":"干虾烤虾大对虾干500g淡干烤海虾干货海鲜干货年货","categoryId":13,"price":40,"stock":21925,"status":1,"createTime":"2020-06-28 16:06:34","updateTime":"2020-02-11 00:51:59"},{"id":27,"name":"波士顿大龙虾鲜活冰鲜海鲜水产大只装波龙澳洲龙虾 400-500g 一只装","image":"http://111.231.103.117:8083/images/new-longxia.png","detail":"类别:澳洲龙虾特产品类:澳洲龙虾国产/进口:国产保存状态:冰鲜原产地:中国大陆","categoryId":13,"price":222,"stock":22123,"status":1,"createTime":"2020-06-28 16:06:34","updateTime":"2020-02-11 00:11:30"}]
- 模板:$2$
取第二个参数
- 匹配数字(0代表随机):2
取第二组数据;第二组数据中的id和name
(8)、线程组右键 <<< 添加 <<< 监听器 <<< 查看结果树
(9)、线程组右键 <<< 添加 <<< 取样器 <<< 调试取样器
(10)、点击启动,点击查看结果树,查看请求及取样器信息
HTTP请求中的响应数据,响应体中的数据可以看到,一共有两个符合查询规则的数据
(11)、点击调试取样器,查看响应数据下的响应体
userParam:正则表达式提取的参数名,获取到的参数值
userParam_g:第2组
userParam_g0:第二组的数据,id和name
userParam_g1:第二组数据的第一个参数,id
userParam_g2:第二组数据的第一个参数,id
(12)、线程组右键 <<< 添加 <<< 取样器 <<< JSR223 Sampler,编写脚本,打开日志,清除全部,点击启动
点击选项菜单,点击日志查看
文章来源:https://www.toymoban.com/news/detail-464871.html
log.info("输出变量:${userParam}")
log.info("输出变量:"+vars.get("userParam"));
如图:可以使用变量名获取参数值
文章来源地址https://www.toymoban.com/news/detail-464871.html
到了这里,关于【P15】JMeter 正则表达式提取器(Regular Expression Extractor)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!