Jmeter 使用Json提取请求数据的方法

以下是详细讲解JMeter使用JSON提取请求数据的方法的完整攻略。

什么是JSON Extractor?

JSON Extractor是JMeter插件之一,其主要功能是从HTTP响应中的JSON数据中提取出所需数据。

JSON Extractor配置

JSON Extractor是基于JMeter的post-processor,它可以获取JSON数据并在后续操作中使用。以下是如何配置JSON Extractor:

  1. 添加JSON Extractor

选中需要使用JSON提取的HTTP响应的请求,然后单击右键选择“添加 > 后置处理器 > JSON Extractor”。

  1. 配置JSON Extractor

打开JSON Extractor后,在名称字段中为该提取器命名。下面我们来详细配置JSON Extractor。

  • 主机名或IP地址:输入要提取的JSON字符串所在的 JSON根对象的名称或路径。根据响应的JSON结构来指定,如果JSON数据是对象,则可以直接输入对象名称;如果是数组,则需要使用数组语法。例如,如果需要从“data”对象中提取数据,则应输入“$.data”。
  • 变量名:输入提取的变量名。请确保该变量名称唯一,以便在后续的步骤中使用它。例如,如果要提取的数据位于“user_id”字段中,则可以输入“user_id”。
  • JSON Path表达式:输入提取数据的JSON Path表达式。JSON Path是一种基于JSON文档结构的查询语言,可用于从JSON结构中验证、查询或提取信息。如果您不知道JSON Path表达式的语法和用法,则可以在此处输入“$”,它将返回JSON的整个根对象。例如,如果要提取的 JSON 格式如下:

{
"user_id":"1234",
"user_name":"John",
"email":"john@example.com"
}

要提取user_id可以输入“$.user_id”。

  • 默认值:如果找不到要提取的值,则可以输入默认值。

其他需要配置的选项有:

  • 是否应只匹配第一个匹配项
  • 是否对提取值解码
  • 是否适用递归搜索

示例1:提取json数组中的值

以下是JMeter使用JSON Extractor提取JSON数组的示例:

  1. 定义HTTP请求

首先,我们需要定义一个HTTP请求。在这个例子中,我们将假设我们正在测试一个 web 服务,该服务返回以下 JSON 响应:

[
  {
    "name": "John Doe",
    "age": 35
  },
  {
    "name": "Jane Smith",
    "age": 28
  }
]
  1. 添加JSON Extractor

在HTTP请求下添加一个JSON Extractor。

  1. 配置JSON Extractor

在JSON Extractor中定义表达式:$[*].name。这个表达式表示取得JSON响应中name字段的所有值。

  1. 添加Debug Sampler

在JMeter Tree中选择添加一个Debug Sampler。这样我们就可以看到从JSON响应中提取的数据。

  1. 执行测试

运行测试并查看Debug Sampelr的响应数据。您应该看到:

name_1=John Doe
name_2=Jane Smith

示例2:从嵌套json结构中提取值

以下是JMeter使用JSON Extractor从嵌套json结构中提取值的示例:

  1. 定义HTTP请求

首先,我们需要定义一个HTTP请求。在这个例子中,我们将假设我们正在测试一个web服务,该服务返回以下 JSON 响应:

{
  "data": {
    "user": {
      "name": "John Doe",
      "age": 35
    },
    "location": {
      "city": "New York",
      "state": "NY"
    }
  }
}
  1. 添加JSON Extractor

在HTTP请求下添加一个JSON Extractor。

  1. 配置JSON Extractor

在JSON Extractor中定义表达式:$.data.user.age。这个表达式表示取得JSON响应中data对象里user对象中age字段的值。

  1. 添加Debug Sampler

在JMeter Tree中选择添加一个Debug Sampler。这样我们就可以看到从JSON响应中提取的数据。

  1. 执行测试

运行测试并查看Debug Sampelr的响应数据。您应该看到:

age=35

这就是使用JSON Extractor从JSON响应中提取数据的两个示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Jmeter 使用Json提取请求数据的方法 - Python技术站

(1)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 把其他C/C++编译器集成到VC2005中的方法

    将其他C/C++编译器集成到VC2005中,可以方便地拥有多个编译器的优势,使得编译更加高效、灵活,并且可以在不同的开发环境中进行快速切换。 下面是把其他C/C++编译器集成到VC2005中的方法: 第一步:获取其他编译器 在集成其他编译器之前,必须首先获取相应的编译器。常见的C/C++编译器有GCC、Clang、Intel C++等。在此以获取GCC为例,…

    C 2023年5月23日
    00
  • C语言函数指针的问题

    C语言函数指针的问题 函数指针是C语言中的一种类型,可以说是C语言中比较高级的概念。虽然函数指针相对于其他类型的指针来说比较复杂,难以理解,但是理解了函数指针之后会让我们的代码更加灵活,可读性更高,代码复用性更强。 一、什么是函数指针 函数指针就是指向函数的指针。通俗地说,它是一个指针,指向某个函数的起始位置。以一个函数的指针作为参数或返回值,可使函数更灵活…

    C 2023年5月10日
    00
  • C语言实现三子棋的示例代码

    以下是“C语言实现三子棋的示例代码”的完整攻略: C语言实现三子棋的示例代码 简介 三子棋是一种简单的两人游戏,游戏过程中两个选手分别执黑白两色棋子,轮流落子于棋盘上,先将自己的棋子在横、竖、斜方向上连成三个直线即获胜。 本篇文章将以C语言编写三子棋游戏为例,为大家详细讲解示例代码和相关思路。 示例代码实现思路 本示例代码中,我们将采用控制台输出的方式进行界…

    C 2023年5月23日
    00
  • C语言时间函数之strftime()详解

    C语言时间函数之strftime() 详解 概述 在C语言中,我们可以使用time.h头文件中的函数来处理时间信息。其中,strftime()函数是一个十分常用且功能强大的时间格式化函数,其可以将给定时间的分量转化成特定格式的字符串。本文将详细讲解strftime()函数的使用方法及注意事项。 strftime()函数原型 strftime()函数的原型如下…

    C 2023年5月24日
    00
  • C++实现学生考勤信息管理系统

    C++实现学生考勤信息管理系统 系统需求 首先,我们需要定义考勤信息管理系统的需求: 能够添加新学生记录; 能够删除指定学生记录; 能够显示所有学生记录; 能够修改指定学生记录; 能够查询指定学生记录。 数据结构设计 为了实现学生考勤信息管理系统,我们需要定义数据结构来存储学生记录。这里我们选择使用结构体来表示一个学生记录,包括以下字段: struct St…

    C 2023年5月23日
    00
  • C语言内存分布与heap空间分别详细讲解

    针对这个问题,我根据如下步骤进行讲解: 1. C语言内存分布 C语言是一种直接操作内存的语言,因此内存管理对于程序的运行效率和安全性都非常重要。C语言内存分布主要包括以下几个部分: 栈区(Stack) 栈区相对于堆区来说是一块连续的内存地址,在程序运行时自动分配和释放。栈区主要用于函数调用和参数传递。每调用一个函数时,都会在栈区中创建一个函数帧,存储函数的参…

    C 2023年5月23日
    00
  • C程序 检查闰年

    C程序 检查闰年使用攻略 简介 本文将介绍如何使用C程序来检查一个年份是否为闰年。闰年是指能被4整除的年份,但是不能被100整除的年份,或者能够被400整除的年份。文章将包括程序示例和思路讲解。 示例代码 下面是一个简单的C程序,它使用函数来检查一个给定年份是否为闰年。该函数返回一个整数值,如果该年份是闰年则返回1,否则返回0。 #include <s…

    C 2023年5月9日
    00
  • Python基础教程之异常处理详解

    Python基础教程之异常处理详解 异常处理是程序设计中非常重要的一部分。在Python中,我们可以利用异常机制来处理程序运行过程中出现的错误,使得程序在出错时能够正常运行并记录错误信息,提高程序的健壮性和可维护性。 什么是异常处理 在Python中,异常是程序在运行期间出现的不正常情况,可能导致程序中断或得到错误的结果。异常的产生原因很多,如输入数据不合法…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部