首页 > 其他分享 >使用JMeter的JSON提取器:通过递归下降查找,从接口响应中提取特定字段

使用JMeter的JSON提取器:通过递归下降查找,从接口响应中提取特定字段

时间:2024-03-04 18:57:48浏览次数:30  
标签:code 提取 name 接口 JSON JMeter

  在接口测试中,我们经常需要从返回的JSON数据中提取特定字段以便后续使用。JMeter提供了JSON提取器,可以帮助我们实现这一目标。本文将介绍如何使用JMeter的JSON提取器通过递归下降查找的方式从接口响应中提取特定字段,并通过示例解释JSON表达式中 ".." 的逻辑。

1. 示例接口响应结果:

{
    "data": [{
        "code": "2676e33735cf4ca1a8a6b079da24fad0",
        "name": "报销管理"
    },
    {
        "code": "91b398813a39461ea8389e883dea4861",
        "name": "财务核算"
    },
    {
        "code": "a1b29fc6ff86460a81959d8d06ea13dd",
        "name": "凭证金额校验"
    }]
}

2. 步骤:

2.1 添加JSON提取器:

  在你的HTTP请求之后,添加一个JSON提取器。JSON提取器可以在JMeter的线程组下的HTTP请求中找到。

2.2 配置JSON提取器:

  • "变量名":输入一个变量名称(例如,提取的code将存储在这个变量中,比如 "extractedCode")。
  • "JSON路径表达式":这里我们要提取 "name" 为 "凭证金额校验" 的 "code"。我们使用JSON路径表达式来指定要提取的字段。

  JSON路径表达式如下:

$..[?(@.name=='凭证金额校验')].code

  在这个表达式中,"$.." 表示递归下降查找,而不仅限于当前层级的子元素。它可以检索所有层次的子元素,用来查找具有特定属性的所有嵌套对象。在例子中,它会匹配所有名为 "凭证金额校验" 的对象,并提取它们的 "code" 值。

2.3 使用提取的值:

  在接下来的请求或其他操作中,你可以使用${extractedCode}来引用提取出的值。

通过以上步骤,JMeter能够轻松提取JSON响应中符合条件的字段,并将其存储在指定的变量中供后续使用。

这样,我们就可以利用JMeter的JSON提取器方便地从接口响应中提取所需的字段,以支持更复杂的测试或验证场景。

标签:code,提取,name,接口,JSON,JMeter
From: https://www.cnblogs.com/n00dle/p/18051957

相关文章

  • JMeter分布式安装和HTTP
    JMeter分布式安装分布式JMeter环境主要由一个JMeter控制器(Control)和多个JMeter代理(Agent)组成。被测试的计算机JMeter控制器为控制计算机,JMeter代理为工作计算机。现在每台计算机上安装JMeter。在每太运行JMeter代理的计算机中打开%JMETER_HOME%\bin\jmeter.properties文件。修改se......
  • 接口测试-json文件读取报java.lang.ClassCastException: java.util.LinkedHashMap can
    问题原因:从json文件中读取的信息为hashMap,与预期(类对象)格式不匹配,无法解析。问题分析:json文件包含一个json串列表,代表向接口中传递不同的参数组合,通过下面方法读取json文件信息,反序列化成类对象,并把这些赋值的对象进行接口请求参数进行传递。publicList<T>getReadValuesLi......
  • JSON.parse解析字符串报错-SyntaxError: Unexpected token ‘ in JSON at position 报
    “SyntaxError:Unexpectedtoken’inJSONatposition”报错原因是因为解析的字符串对象中,JSON.parse无法识别;JSON.parse可以将标准的json类型数据转换为JavaScript对象,如果数据不是正确的json类型的数据则会控制台报错,可能会阻断代码的正常运行我们可以写一个函数来......
  • exif信息提取
    在电子取证和misc中,有时出题人会把隐藏的信息藏在图片的exif信息中exif信息:1、kali的exiftool工具grepFLAG直接在输出结果中查找FLAG字符串2、利用一些小的图片查看器,但这种工具似乎失败率比较高 ......
  • xlua - 增加lua-cjson库
    xlua貌似不支持单独动态加载cjson.dll,试了各种方式,都是会造成Unity闪退,也不知道原因。解决办法就是直接编译进xlua.dll 1)下载lua-cjson源码,并解压到xlua的build文件夹根目录GitHub-openresty/lua-cjson:LuaCJSONisafastJSONencoding/parsingmoduleforLua 2......
  • 【python接口自动化系列】python + pytest + requests + allure + jsonpath + pyyaml,
     前置基础:python虚拟环境的创建、操作、迁移等python操作yamlpython操作mysqlpytest简易教程 配套练习环境(含相关接口):https://www.cnblogs.com/uncleyong/p/17165143.html 如果文章不能访问,请联系处理,wx:ren168632201 python接口自动化系列(01):自动化测试框......
  • npm 包 package.json 配置文件
    package.json文件每个前端项目中都有package.json文件,它是用于声明依赖的npm包配置文件。1.生成package.json文件yarninit-y{"name":"package.json文件","version":"1.0.0","main":"index.js","license":......
  • C# 调用Web Api post提交json格式
    转载:https://blog.csdn.net/q_17600689511/article/details/82735172?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-2-82735172-blog-86551903.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=di......
  • json中的转义字符
    JSON的转义字符主要包括以下几种:双引号("):在JSON中,双引号用于定义字符串的开始和结束。如果需要在字符串中包含实际的双引号字符,则必须使用反斜杠(\)进行转义,即"。反斜杠(\):由于反斜杠在JSON中具有特殊含义(用于转义字符),因此如果需要在字符串中包含实际的反斜杠字符,则必须使用另一个反......
  • 各种类型json解析
    usingNewtonsoft.Json;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Web.Script.Serialization;namespaceAnalysisJson{classProgram{staticvoidMain(string[]args......