JMETER 后置处理器之正则表达式提取器(三) 讲解同一个正则表达式提取器,同时取多个值例子 实例: 比如服务器端响应JSON 报文如下: { “data”: [ { “mount”:10,“price”:100.00,“totalprice”:1000.00,“Type”:2 } ], Msg:sucess } 现在用户需要提取报文中间的mount:10,price:100.00,totalprice:100.00,Type:2这个四个对应的值。 在性能测试工具Apache JMeter中,正则表达式提取器是一种强大的后置处理器,用于从服务器响应中提取所需的数据。本教程将详细讲解如何使用正则表达式提取器从JSON响应中提取多个值。 我们需要一个JSON响应作为示例,如下所示: ```json { "data": [{ "mount": 10, "price": 100.00, "totalprice": 1000.00, "Type": 2 }], "Msg": "success" } ``` 用户的目标是提取"mount"、"price"、"totalprice"和"Type"这四个字段的值。 步骤如下: 1. 将JSON响应内容保存到文本文件`Return_Msg.txt`,放在E盘根目录下。 2. 在JMeter中创建一个HTTP请求采样器,设置为读取`Return_Msg.txt`。配置包括服务器名称/IP留空,协议为`file`,方法为`GET`,路径为`E:\Return_Msg.txt`。 3. 添加一个“察看结果树”监听器,以便查看HTTP请求是否成功读取了文件内容。 4. 为HTTP请求添加“后置处理器”——正则表达式提取器。在这里,我们需要分别编写针对每个字段的正则表达式: - 对于"mount",正则表达式为:`"mount":(\d+)` - 对于"price",正则表达式为:`"price":([\d\.]+)` - 对于"totalprice",正则表达式为:`"totalprice":([\d\.]+)` - 对于"Type",正则表达式为:`"Type":(\d+)` 将这些正则表达式合并成一个,以便一次性提取所有值:`"mount":(\d+),"price":([\d\.]+),"totalprice":([\d\.]+),"Type":(\d+)` 5. 配置正则表达式提取器的其他参数: - 引用名称:MyMsg - 模板:`$1$`,表示我们只取每组匹配的第一个结果。 - 匹配数字:1,表示提取所有匹配的组。 6. 添加一个Debug Sampler,以帮助调试提取的变量。 7. 创建一个新的HTTP请求采样器,使用从正则表达式提取器获取的变量值。例如,将"mount"值设置为`${MyMsg_g1}`,"price"值设置为`${MyMsg_g2}`,"totalprice"值设置为`${MyMsg_g3}`,"Type"值设置为`${MyMsg_g4}`。 当运行测试时,Debug Sampler会显示提取的变量值,而HTTP请求会使用这些值作为参数。在“察看结果树”监听器中,可以看到请求携带了从JSON响应中提取的参数。 需要注意的是,正则表达式的组引用方式: - `$0$`表示整个匹配的字符串。 - `$1$`至`$n$`表示匹配的第n个子组,其中n是正则表达式中括号定义的组编号。 - 使用逗号(`,`)或无间隔符号连接如`$1$2$`表示获取第1和第2个子组的结果,而`$3$,$4$`表示获取第3和第4个子组,中间用逗号分隔。 匹配数字选项: - 0表示随机选取匹配的组。 - 1表示选取所有匹配的组。 通过这种方式,可以有效地从复杂的JSON响应中提取所需的数据,并在后续的请求中使用这些值,这对于实现基于先前响应动态构建请求的测试场景至关重要。在实际的性能测试中,这种能力对于模拟真实用户行为、验证服务器响应以及进行数据驱动测试都非常有用。
剩余6页未读,继续阅读
- 粉丝: 7932
- 资源: 308
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于JavaScript的在线考试系统(编号:65965158)(1).zip
- 五相电机双闭环矢量控制模型-采用邻近四矢量SVPWM-MATLAB-Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成
- Linux下的cursor安装包
- springboot-教务管理系统(编号:62528147).zip
- 3dmmods_倾城系列月白_by_白嫖萌新.zip
- SVPWM+死区补偿(基于电流极性)+高频注入法辨识PMSM的dq轴电感(离线辨识)-simulink
- 微信跑腿小程序的设计与实现
- 基于 Java 实现的上位机通讯程序,可与单片机进行数据交换
- screentshot-2024.12.22-20.45.35.jpg
- 基于c51单片机,汇编语言实现的时钟,有仿真电路图