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

简介: Apache JMeter教程展示了如何提取和使用JSON数据。创建测试计划,包括HTTP请求和JSON Extractor,设置变量前缀和JSON路径表达式来提取数据。通过Debug Sampler和View Results Tree监听器验证提取结果,然后在后续请求和断言中使用这些数据。此方法适用于复杂测试场景,提升性能和自动化测试效率。

image.png

前言

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提取功能,将大大提升您在性能测试和自动化测试中的效率和灵活性。

相关文章
|
1月前
|
SQL JSON 数据格式
SPL 处理多层 JSON 数据比 DuckDB 方便多了
esProc SPL 处理多层 JSON 数据比 DuckDB 更便捷,尤其在保留 JSON 层次与复杂计算时优势明显。DuckDB 虽能通过 `read_json_auto()` 将 JSON 解析为表格结构,但面对深层次或复杂运算时,SQL 需频繁使用 UNNEST、子查询等结构,逻辑易变得繁琐。而 SPL 以集合运算方式直接处理子表,代码更简洁直观,无需复杂关联或 Lambda 语法,同时保持 JSON 原始结构。esProc SPL 开源免费,适合复杂 JSON 场景,欢迎至乾学院探索!
|
26天前
|
JSON Java 测试技术
面向初学者的JMeter实战手册:从环境搭建到组件解析
Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。
75 0
|
3月前
|
XML JSON API
淘宝商品详情API的调用流程(python请求示例以及json数据示例返回参考)
JSON数据示例:需要提供一个结构化的示例,展示商品详情可能包含的字段,如商品标题、价格、库存、描述、图片链接、卖家信息等。考虑到稳定性,示例应基于淘宝开放平台的标准响应格式。
|
3月前
|
JSON Java 数据格式
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——封装统一返回的数据结构
本文介绍了在Spring Boot中封装统一返回的数据结构的方法。通过定义一个泛型类`JsonResult<T>`,包含数据、状态码和提示信息三个属性,满足不同场景下的JSON返回需求。例如,无数据返回时可设置默认状态码"0"和消息"操作成功!",有数据返回时也可自定义状态码和消息。同时,文章展示了如何在Controller中使用该结构,通过具体示例(如用户信息、列表和Map)说明其灵活性与便捷性。最后总结了Spring Boot中JSON数据返回的配置与实际项目中的应用技巧。
191 0
|
3月前
|
JSON Java fastjson
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——使用 fastJson 处理 null
本文介绍如何使用 fastJson 处理 null 值。与 Jackson 不同,fastJson 需要通过继承 `WebMvcConfigurationSupport` 类并覆盖 `configureMessageConverters` 方法来配置 null 值的处理方式。例如,可将 String 类型的 null 转为 "",Number 类型的 null 转为 0,避免循环引用等。代码示例展示了具体实现步骤,包括引入相关依赖、设置序列化特性及解决中文乱码问题。
85 0
|
3月前
|
JSON Java fastjson
微服务——SpringBoot使用归纳——Spring Boot返回Json数据及数据封装——Spring Boot 默认对Json的处理
本文介绍了在Spring Boot中返回Json数据的方法及数据封装技巧。通过使用`@RestController`注解,可以轻松实现接口返回Json格式的数据,默认使用的Json解析框架是Jackson。文章详细讲解了如何处理不同数据类型(如类对象、List、Map)的Json转换,并提供了自定义配置以应对null值问题。此外,还对比了Jackson与阿里巴巴FastJson的特点,以及如何在项目中引入和配置FastJson,解决null值转换和中文乱码等问题。
222 0
|
2月前
|
XML JSON API
如何在 Postman 中上传文件和 JSON 数据
如果你想在 Postman 中同时上传文件和 JSON 数据,本文将带你一步一步地了解整个过程,包括最佳实践和技巧,让你的工作更轻松。
|
2月前
|
JSON JavaScript 前端开发
如何在 Postman 中发送 JSON 数据
我们将深入探讨使用 Postman 发送 JSON 数据这一主题,Postman 是一款强大的 API 测试和开发工具。无论您是经验丰富的开发人员还是新手,掌握这项技能对于高效的 API 测试和开发都至关重要。
|
2月前
|
JSON Java 数据库连接
怎样用 esProc 计算来自 Restful 的多层 json 数据
esProc 是一款强大的数据处理工具,可简化 Java 处理 Restful 接口返回的复杂多层 JSON 数据的难题。通过 esProc,不仅能轻松访问和解析 Restful 数据,还能高效完成复杂计算任务,并可无缝嵌入 Java 应用中作为计算引擎使用。例如,筛选特定分类订单或计算金额,esProc 的脚本简洁直观,远优于传统 SQL 或纯 Java 实现。此外,esProc 支持安全认证(如 Cookie 和 Token)及 JDBC 集成,为开发者提供灵活高效的解决方案。
|
2月前
|
JSON JavaScript 数据格式
何如定义 JSON Schema 并验证该 json 数据?
本文定义了一个包含 audio 和 tags 两个必需属性的 JSON Schema,用于规范数据结构。其中,audio 是非空字符串,表示音频组件;tags 是非空数组,表示标签组件。通过示例数据和验证工具(如 ajv, NJsonSchema),可确保 JSON 数据符合 Schema 要求,从而保障数据的一致性和正确性。
115 1

推荐镜像

更多
  • DNS