在使用Apache JMeter进行API测试时,我们经常需要从JSON格式的响应中提取特定字段的值。这可以通过使用JMeter内置的JSON提取器和正则表达式提取器来完成。以下是一个具体的例子,展示了如何从一个JSON响应中提取rowId
的值,同时处理字符串终止符。
假设我们有以下JSON响应:
1 2 3 4 5 6 7 8 |
|
我们的目标是提取rowId
参数的值D96DB6B24EEE412BB0DE7E728EE193E6
。这个值不是直接作为JSON对象的一个属性呈现的,而是作为一个URL的一部分,嵌套在href
字段中。因此,我们需要两步来提取这个值。
步骤 1: 提取href字段
首先,我们使用JSON提取器来捕获href
字段的值。JSON提取器可以直接从JSON结构中提取值。我们可以按照以下步骤配置JSON提取器:
- 添加JSON提取器到请求:在JMeter中,选择HTTP请求组件,然后右键选择“添加” -> “后置处理器” -> “JSON提取器”。
- 配置JSON提取器:在JSON提取器的配置界面中,设置以下参数:
- 变量名称:
extractedHref
- JSON路径表达式:
$.href
- 默认值:
NOT_FOUND
这样配置后,如果JSON响应格式正确,extractedHref
变量将包含href
字段的完整URL字符串。
步骤 2: 从URL中提取rowId
- 接下来,我们需要从
extractedHref
变量中提取rowId
的值。 - 我们可以使用正则表达式提取器来完成这个任务:
- 应用到变量:
extractedHref
- 正则表达式:
rowId=([^&"]+)
- 模板:
$1$
- 匹配编号:
1
- 默认值:
NOT_FOUND
在这个正则表达式中,rowId=([^&"]+)
的意思是查找rowId=
之后的任何字符序列,直到遇到&
、"
或字符串结束。圆括号()
表示捕获组,用于提取匹配的部分。这样修改后,正则表达式将在遇到引号"
时停止匹配,这可以防止提取到额外的字符,如在JSON响应中紧跟rowId
值后的引号和其他字段。
结论
通过以上步骤,我们可以有效地从JSON响应中提取rowId
的值。这种方法不仅适用于本例,也可以广泛应用于需要从嵌套信息中提取数据的场景。JMeter的强大功能使得它成为API测试和数据提取的强有力工具。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
qq群号:485187702【暗号:csdn11】
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】