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页未读,继续阅读
- 粉丝: 7911
- 资源: 308
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Prophet时间序列预测入门.ipynb
- 一款由Java写的射击游戏.zip算法资源
- 一些java的小游戏项目,贪吃蛇啥的.zip用户手册
- 在线实时的斗兽棋游戏,时间赶,粗暴的使用jQuery + websoket 实现实时H5对战游戏 + java.zip课程设计
- HTML5酒店网站模板.zip
- 基于SpringBoot开发的支付系统(包括支付宝支付,微信支付,订单系统).zip
- C基于Qt的学生成绩管理系统.zip毕业设计
- 基于深度卷积神经网络(CNN)模型的图像着色研究与应用系统实现
- Java Web实验报告五:基于JSP的留言本
- Java Web实验报告四:基于AJAX的级联下拉菜单