写点什么

使用 JMeter 从 JSON 响应的 URL 参数中提取特定值

作者:EquatorCoco
  • 2024-03-22
    福建
  • 本文字数:1022 字

    阅读完需:约 3 分钟

在使用 Apache JMeter 进行 API 测试时,我们经常需要从 JSON 格式的响应中提取特定字段的值。这可以通过使用 JMeter 内置的 JSON 提取器和正则表达式提取器来完成。以下是一个具体的例子,展示了如何从一个 JSON 响应中提取rowId的值,同时处理字符串终止符。


假设我们有以下 JSON 响应:

{  "flag": "success",  "formulaStatus": -1,  "encryption": "0",  "changestate": 1,  "href": "/pf/ovdf/bd/openPage?pr=od&ll=115dfc704f96b039825a66f15b04&rowId=D96DB6B24EEE412BB0DE7E728EE193E6",  "closer": false}
复制代码


我们的目标是提取rowId参数的值D96DB6B24EEE412BB0DE7E728EE193E6。这个值不是直接作为 JSON 对象的一个属性呈现的,而是作为一个 URL 的一部分,嵌套在href字段中。因此,我们需要两步来提取这个值。


步骤 1: 提取href字段


首先,我们使用 JSON 提取器来捕获href字段的值。JSON 提取器可以直接从 JSON 结构中提取值。我们可以按照以下步骤配置 JSON 提取器:


  1. 添加 JSON 提取器到请求:在 JMeter 中,选择 HTTP 请求组件,然后右键选择“添加” -> “后置处理器” -> “JSON 提取器”。

  2. 配置 JSON 提取器:在 JSON 提取器的配置界面中,设置以下参数:变量名称extractedHrefJSON 路径表达式$.href默认值NOT_FOUND


这样配置后,如果 JSON 响应格式正确,extractedHref变量将包含href字段的完整 URL 字符串。


步骤 2: 从 URL 中提取rowId


接下来,我们需要从extractedHref变量中提取rowId的值。我们可以使用正则表达式提取器来完成这个任务:


  1. 添加正则表达式提取器:在 JSON 提取器下面,右键选择“添加” -> “后置处理器” -> “正则表达式提取器”。

  2. 配置正则表达式提取器:在正则表达式提取器的配置界面中,设置以下参数:应用到变量extractedHref正则表达式rowId=([^&"]+)模板$1$匹配编号1默认值NOT_FOUND


在这个正则表达式中,rowId=([^&"]+)的意思是查找rowId=之后的任何字符序列,直到遇到&"或字符串结束。圆括号()表示捕获组,用于提取匹配的部分。这样修改后,正则表达式将在遇到引号"时停止匹配,这可以防止提取到额外的字符,如在 JSON 响应中紧跟rowId值后的引号和其他字段。


结论


通过以上步骤,我们可以有效地从 JSON 响应中提取rowId的值。这种方法不仅适用于本例,也可以广泛应用于需要从嵌套信息中提取数据的场景。JMeter 的强大功能使得它成为 API 测试和数据提取的强有力工具。


文章转载自:查拉图斯特拉面条

原文链接:https://www.cnblogs.com/n00dle/p/18087760

体验地址:http://www.jnpfsoft.com/?from=001

用户头像

EquatorCoco

关注

还未添加个人签名 2023-06-19 加入

还未添加个人简介

评论

发布
暂无评论
使用JMeter从JSON响应的URL参数中提取特定值_Java_EquatorCoco_InfoQ写作社区