当前位置: 首页 > news >正文

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

在使用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

体验地址:引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构

http://www.lryc.cn/news/326323.html

相关文章:

  • 汽车电子行业知识:自动驾驶系统结构和各模块功能
  • Oracle参数文件详解
  • 鸿蒙(HarmonyOS)Navigation如何实现多场景UI适配?
  • PTGui图像拼接实验
  • C++|类封装、类的分文件编写练习:设计立方体类、点和圆的关系
  • 大数据开发扩展shell--尚硅谷shell笔记
  • 考研数学|《1800》《1000》《880》《660》最佳搭配使用方法
  • 【GameFramework框架内置模块】17、声音(Sound)
  • 视频记录历史播放位置效果
  • Request Response
  • How to convert .py to .ipynb in Ubuntu 22.04
  • 【prometheus-operator】k8s监控集群外redis
  • MySQL索引(图文并茂)
  • Redis 教程系列之Redis PHP 使用 Redis(十二)
  • JavaScript语法和数据类型
  • 解决华为云服务器宝塔面板无法访问显示“此站点的连接不安全”问题
  • 【Python】 Python脚本实现某平台视频流下载
  • LangChain核心模块 Model I/O——Prompts
  • 关于Docker守护程序未运行导致的错误
  • Unity中关于SendMessage方法
  • C++ 修饰符类型
  • 生产计划数据模型,实现能源企业数字化高效管理
  • 【chemistry 2】蛋白质的共价结构
  • 什么是 UI ?设计师为你解答
  • pytest框架入门及环境配置
  • unity 2d范围检测:怪物检测范围
  • 外包干了10天,技术倒退明显
  • 后端常问面经之Java基础
  • I.MX6ULL_Linux_驱动篇(58)linux IIO驱动
  • 两个包装类型变量的比较问题