首页 > 其他分享 >掌握JMeter:深入解析如何提取和利用JSON数据

掌握JMeter:深入解析如何提取和利用JSON数据

时间:2024-06-12 18:13:24浏览次数:11  
标签:解析 提取 JSON 添加 右键 HTTP JMeter

前言

Apache JMeter不仅是一个功能强大的性能测试工具,它还可以用于提取和处理响应中的数据。对于现代Web应用,JSON(JavaScript Object Notation)已经成为主要的数据交换格式。本文将详细介绍如何在JMeter中提取JSON数据,并将其用于后续的请求或断言。

环境准备

在开始之前,请确保已经安装并配置好JMeter。如果还没有安装,请参考之前的JMeter安装教程。

创建测试计划

  • 启动JMeter
    • 双击jmeter.bat或在命令提示符中输入jmeter启动JMeter GUI。
  • 添加线程组
    • 右键点击测试计划(Test Plan),选择“添加”(Add)->“Threads (Users)”->“Thread Group”。
  • 添加HTTP请求
    • 右键点击线程组,选择“添加”(Add)->“Sampler”->“HTTP Request”。
    • 配置HTTP请求的URL和其他参数,例如:
      • 服务器名称或IP:jsonplaceholder.typicode.com
      • 方法:GET
      • 路径:/posts/1

配置JSON提取器

  • 添加JSON提取器

    • 右键点击HTTP请求,选择“添加”(Add)->“后处理器”(Post Processors)->“JSON Extractor”。
  • 配置JSON提取器

    • 名称前缀(Variable names prefix):设置提取结果的前缀,例如json_
    • JSON路径表达式(JSON Path Expressions):填写需要提取的JSON路径。例如:
      • 提取标题:$.title
      • 提取正文:$.body
    • 匹配数字(Match Numbers):设置为1以提取第一个匹配项。
    • 默认值(Default Values):如果未找到匹配项,可以设置默认值。

验证提取结果

  • 添加调试采样器

    • 右键点击线程组,选择“添加”(Add)->“Sampler”->“Debug Sampler”。
  • 添加查看结果树监听器

    • 右键点击线程组,选择“添加”(Add)->“监听器”(Listeners)->“View Results Tree”。
  • 运行测试计划

    • 点击启动按钮,运行测试计划。
    • 在“查看结果树”监听器中,查看调试采样器的响应数据,验证提取结果是否正确。提取的数据将显示在响应数据的“响应数据”部分,带有前缀的变量名。

使用提取的数据

  • 在后续请求中使用提取的数据

    • 例如,添加另一个HTTP请求,配置URL和其他参数。
    • 在请求参数中使用之前提取的数据,格式为${变量名},例如${json_title}
  • 添加断言

    • 右键点击HTTP请求,选择“添加”(Add)->“断言”(Assertions)->“JSON Assertion”。
    • 配置JSON断言以验证响应数据是否包含预期值。例如,可以断言提取的title是否等于某个值。

示例:完整的测试计划

Test Plan
  Thread Group
    HTTP Request (GET /posts/1)
      JSON Extractor
        - Variable names prefix: json_
        - JSON Path Expressions: $.title, $.body
    Debug Sampler
    HTTP Request (POST /posts)
      - Use extracted data in parameters: title=${json_title}, body=${json_body}
    View Results Tree

总结

通过以上步骤,您可以在JMeter中成功提取JSON数据并将其用于后续的请求或断言。这种方法不仅适用于简单的GET请求,还可以扩展到更复杂的测试场景,如模拟用户交互、验证API响应等。掌握JMeter的JSON提取功能,将大大提升您在性能测试和自动化测试中的效率和灵活性。

标签:解析,提取,JSON,添加,右键,HTTP,JMeter
From: https://www.cnblogs.com/hogwarts/p/18244452

相关文章

  • 高效管理JMeter中的Cookies:测试工程师的全面指南
    前言在性能测试和自动化测试中,Cookie管理是一个至关重要的环节。ApacheJMeter提供了强大的Cookie管理器,帮助测试工程师在模拟用户会话和维持状态时更加方便。本指南将详细介绍如何在JMeter中配置和使用Cookie管理器。什么是Cookie及其重要性Cookie是一种由服务器发送并存储在......
  • 掌握JMeter参数化技巧:通过CSV文件实现高效登录压测
    前言在性能测试过程中,参数化是一种非常重要的技术,它允许我们使用多组不同的数据来模拟真实的用户行为。在本文中,我们将介绍如何通过ApacheJMeter读取CSV文件来实现登录压测参数化。创建CSV数据文件首先,创建一个包含测试用户登录信息的CSV文件。文件的格式应如下:user......
  • 【jmeter】测试redis读取性能(单机)
    一、场景   公司对redis节点进行增加,需要验证节点增加后,对于redis本身性能及服务性能的影响 二、使用工具jmeterredisdataset插件Documentation:https://jmeter-plugins.org/wiki/RedisDataSet/缺点:1、只支持单机2、只支持List和Set类型 三、安装可用插件搜......
  • JSON 和对象的互转(fastjson2 的简单使用)
    fastjson2的简单使用导包随便挑个版本<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.25</version></dependency>使用单个对象Stringstr=JSON.toJSONString......
  • 【jmeter】Jmeter插件PerfMon Metrics Collector安装使用
    一、场景   使用jmeterGUI测试的时候,想观察服务器性能变化  二、插件官方地址Documentation:https://jmeter-plugins.org/wiki/PerfMon/ 三、安装插件首选要安装插件管理的包(这里就不讲了,之前写过)下载地址:https://jmeter-plugins.org/install/Install/ 可用......
  • 域名解析很重要吗?
    互联网已经成为我们生活和工作中不可或缺的一部分。当我们畅游在网络世界时,经常会听到一个术语——域名解析。一、域名是什么?域名,简单来说,就是互联网上识别和定位计算机的层次结构式的字符标识。它就如同是网络世界里的“地址”。我们可以将其类比为现实世界中的地址。在现实中......
  • 全国省市区县列表最新JSON2024最新
    2024最新JSON数据,2024年更新中国总共有23个省、5个自治区、4个直辖市、2个特别行政区。最近需要用到中国城市列表的json串数据,费了不少时间,终于得到了比较全面的数据暂时应该没有比我更全的了~~~得出以下数据json格式,XML格式(包含省市,县级市,县),总数:2893个因为JSON串比较长,有1......
  • jmeter控制读取CSV文件数据发送请求完毕后停止压测
    在JMeter中,如果你想让线程组循环读取文件中的数据并发送请求,直到文件中的数据用尽后自动停止线程组,可以采用CSVDataSetConfig元件配合合适的线程组设置来实现。以下是如何配置的具体步骤:步骤1:添加CSVDataSetConfig1.右键点击你的线程组,选择“添加”(Add)>“配置元件”......
  • vue-json-excel 导出功能
    导出功能1.在vue中使用以下命令安装excel插件npminstallvue-json-excel-S2.在main.js文件中配置全局组件importJsonExcelfrom'vue-json-excel'Vue.component('downloadExcel',JsonExcel)3.在需要导出的.vue页面使用 <download-excel></download-excel><downl......
  • AIGC绘画设计:深入浅出完整解析Stable Diffusion(SD)核心基础知识
    心血来潮再加上想要督促自己,所以决定开始搞AI绘画技术的分享。如果觉得我写的好,又很久没更新,请多点我,因为可能我的懒癌又犯了,哈哈哈哈哈......没有本人帅,十分之一都没有不多废话,切入主题。学一门技术什么最难?当然是入门最难!从0到1,远远比从1到100要难一百倍,为啥?因为你之前......