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

 更新时间:2024年03月27日 10:25:17   作者:查拉图斯特拉面条  
在使用Apache JMeter进行API测试时,我们经常需要从JSON格式的响应中提取特定字段的值,这可以通过使用JMeter内置的JSON提取器和正则表达式提取器来完成,本文介绍JMeter JSON提取特定值的相关知识,感兴趣的朋友跟随小编一起看看吧

在使用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提取器:

  • 添加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测试和数据提取的强有力工具。

到此这篇关于使用JMeter从JSON响应的URL参数中提取特定值的文章就介绍到这了,更多相关JMeter JSON提取特定值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • maven中配置项目的jdk版本无效的排查方式

    maven中配置项目的jdk版本无效的排查方式

    这篇文章主要介绍了maven中配置项目的jdk版本无效的排查方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • ResultSet如何动态获取列名和值

    ResultSet如何动态获取列名和值

    这篇文章主要介绍了ResultSet如何动态获取列名和值问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Spring Boot RestTemplate提交表单数据的三种方法

    Spring Boot RestTemplate提交表单数据的三种方法

    本篇文章主要介绍了Spring Boot RestTemplate提交表单数据的三种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Intellij IDEA 2018配置Java运行环境的方法步骤

    Intellij IDEA 2018配置Java运行环境的方法步骤

    这篇文章主要介绍了Intellij IDEA 2018配置Java运行环境的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 一文弄懂Mybatis中介者模式

    一文弄懂Mybatis中介者模式

    本文主要介绍了一文弄懂Mybatis中介者模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Java中包装类的缓存机制详细讲解

    Java中包装类的缓存机制详细讲解

    Java中的包装类缓存机制是指在Java 5中引入的一个功能,该功能可以帮助节省内存、提高性能,这篇文章主要介绍了Java中包装类缓存机制的相关资料,文中通过代码介绍地方非常详细,需要的朋友可以参考下
    2025-12-12
  • Java CyclicBarrier源码层分析与应用

    Java CyclicBarrier源码层分析与应用

    这篇文章主要介绍了Java CyclicBarrier的源码层分析与应用,CyclicBarrier也叫同步屏障,可以让一组线程达到一个屏障时被阻塞,直到最后一个线程达到屏障,感兴趣的的朋友可以参考下
    2023-12-12
  • maven 传递依赖的实现

    maven 传递依赖的实现

    本文主要介绍了Maven中传递依赖的处理方式,如scope=compile影响依赖传递,使用排除不需要的依赖,以及如何通过查看依赖树解决运行时错误,特别是在依赖排除后可能导致的运行时缺少必需包的问题,感兴趣的可以了解一下
    2024-10-10
  • springboot如何实现导入其他配置类

    springboot如何实现导入其他配置类

    这篇文章主要介绍了springboot如何实现导入其他配置类问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Java%(取模运算)全面讲解

    Java%(取模运算)全面讲解

    这篇文章主要介绍了Java%(取模运算)全面讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01

最新评论