当前位置: 首页 > article >正文

Jmeter后置处理器

 6)后置处理器

90a2456503a7493c9fc04e1fc149b280.png

1--CSS/JQuery提取器

功能特点

  • 数据提取:使用CSS选择器或JQuery语法从HTML响应中提取特定的数据。
  • 动态参数传递:将提取的数据存储为变量,供后续请求使用。
  • 支持多种选择器:支持CSS选择器和JQuery语法,提供丰富的选择器功能。

配置步骤

  1. 添加 CSS/JQuery 提取器

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “CSS/JQuery 提取器”(CSS/JQuery Extractor)。
  2. 配置 CSS/JQuery 提取器

    • 名称:给 CSS/JQuery 提取器一个有意义的名称。
    • 应用到:选择要应用提取器的响应类型(例如,主样本、子样本等)。
    • CSS/JQuery表达式:输入用于匹配数据的选择器。
    • 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
    • 默认值:设置如果未找到匹配项时的默认值。
    • 输出变量名:设置提取的数据存储的变量名。

参数说明

  • 名称:给 CSS/JQuery 提取器一个有意义的名称。
  • 应用到:选择要应用提取器的响应类型,例如:
    • 主样本:仅应用到主样本。
    • 子样本:仅应用到子样本。
    • 主样本和子样本:应用到主样本和子样本。
  • CSS/JQuery表达式:输入用于匹配数据的选择器,支持CSS选择器和JQuery语法。
  • 匹配数字:设置要匹配的次数,例如:
    • -1:匹配所有。
    • 0:随机匹配一个。
    • 1:匹配第一个。
  • 默认值:设置如果未找到匹配项时的默认值。
  • 输出变量名:设置提取的数据存储的变量名,可以在后续请求中引用这个变量。

示例配置

假设我们需要测试一个Web应用,并从首页请求的响应中提取某个元素的文本内容,然后在后续请求中使用该文本内容。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加首页请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:GET
      • 路径:请求的路径(例如/)。
  4. 添加 CSS/JQuery 提取器

    • 右键点击首页请求 -> 添加 -> 后处理器 -> CSS/JQuery 提取器。
    • 配置 CSS/JQuery 提取器:
      • 名称:提取标题文本
      • 应用到:主样本
      • CSS/JQuery表达式:h1.title
      • 匹配数字:1(匹配第一个)
      • 默认值:NoTitleFound
      • 输出变量名:title_text
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:详情页请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/${title_text}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 选择器准确性

    • 确保CSS选择器或JQuery表达式正确无误,能够准确匹配所需的数据。可以使用浏览器开发者工具中的“选择元素”功能进行验证。
  2. 匹配次数

    • 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
  3. 默认值

    • 设置合理的默认值,避免因未找到匹配项而导致测试失败。
  4. 输出变量名

    • 确保输出变量名有意义且易于理解,便于在后续请求中引用。
  5. 错误处理

    • 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从首页请求的响应中提取某个元素的文本内容,然后在后续请求中使用该文本内容。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加首页请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:首页请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/
  4. 添加 CSS/JQuery 提取器

    • 右键点击首页请求 -> 添加 -> 后处理器 -> CSS/JQuery 提取器。
    • 配置 CSS/JQuery 提取器:
      • 名称:提取标题文本
      • 应用到:主样本
      • CSS/JQuery表达式:h1.title
      • 匹配数字:1(匹配第一个)
      • 默认值:NoTitleFound
      • 输出变量名:title_text
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:详情页请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/${title_text}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

 

 

aafc4d46ddde4960bbd87e2e58220646.png


 

2--JSON JMESPath Extractor

功能特点

  • 数据提取:使用 JMESPath 表达式从JSON响应中提取特定的数据。
  • 动态参数传递:将提取的数据存储为变量,供后续请求使用。
  • 支持丰富的表达式:支持复杂的 JMESPath 表达式,提供丰富的数据提取功能。

配置步骤

  1. 添加 JSON JMESPath 提取器

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “JSON JMESPath 提取器”(JSON JMESPath Extractor)。
  2. 配置 JSON JMESPath 提取器

    • 名称:给 JSON JMESPath 提取器一个有意义的名称。
    • 变量名称前缀:设置提取的数据存储的变量名前缀。
    • JSON路径表达式:输入用于匹配数据的 JMESPath 表达式。
    • 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
    • 默认值:设置如果未找到匹配项时的默认值。

参数说明

  • 名称:给 JSON JMESPath 提取器一个有意义的名称。
  • 变量名称前缀:设置提取的数据存储的变量名前缀,实际变量名为前缀加上索引(例如,varName_1)。
  • JSON路径表达式:输入用于匹配数据的 JMESPath 表达式。
  • 匹配数字:设置要匹配的次数,例如:
    • -1:匹配所有。
    • 0:随机匹配一个。
    • 1:匹配第一个。
  • 默认值:设置如果未找到匹配项时的默认值。

示例配置

假设我们需要测试一个Web应用,并从登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSON JMESPath 提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JSON JMESPath 提取器。
    • 配置 JSON JMESPath 提取器:
      • 名称:提取用户ID
      • 变量名称前缀:user_id
      • JSON路径表达式:userId
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id_1}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. JMESPath 表达式

    • 确保 JMESPath 表达式正确无误,能够准确匹配所需的数据。可以使用在线 JMESPath 测试工具进行验证。
  2. 匹配次数

    • 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
  3. 默认值

    • 设置合理的默认值,避免因未找到匹配项而导致测试失败。
  4. 变量名称前缀

    • 确保变量名称前缀有意义且易于理解,便于在后续请求中引用。
  5. 错误处理

    • 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSON JMESPath 提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JSON JMESPath 提取器。
    • 配置 JSON JMESPath 提取器:
      • 名称:提取用户ID
      • 变量名称前缀:user_id
      • JSON路径表达式:userId
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id_1}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

1e0afbc094584f86b9f5dc8dbb9ca897.png


3--JSON 提取器

功能特点

  • 数据提取:使用 JSONPath 表达式从JSON响应中提取特定的数据。
  • 动态参数传递:将提取的数据存储为变量,供后续请求使用。
  • 支持丰富的表达式:支持复杂的 JSONPath 表达式,提供丰富的数据提取功能。

配置步骤

  1. 添加 JSON 提取器

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “JSON 提取器”(JSON Extractor)。
  2. 配置 JSON 提取器

    • 名称:给 JSON 提取器一个有意义的名称。
    • JSON路径表达式:输入用于匹配数据的 JSONPath 表达式。
    • 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
    • 默认值:设置如果未找到匹配项时的默认值。
    • 变量名称:设置提取的数据存储的变量名。

参数说明

  • 名称:给 JSON 提取器一个有意义的名称。
  • JSON路径表达式:输入用于匹配数据的 JSONPath 表达式。
  • 匹配数字:设置要匹配的次数,例如:
    • -1:匹配所有。
    • 0:随机匹配一个。
    • 1:匹配第一个。
  • 默认值:设置如果未找到匹配项时的默认值。
  • 变量名称:设置提取的数据存储的变量名,可以在后续请求中引用这个变量。

示例配置

假设我们需要测试一个Web应用,并从登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSON 提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JSON 提取器。
    • 配置 JSON 提取器:
      • 名称:提取用户ID
      • JSON路径表达式:$.userId
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. JSONPath 表达式

    • 确保 JSONPath 表达式正确无误,能够准确匹配所需的数据。可以使用在线 JSONPath 测试工具进行验证。
  2. 匹配次数

    • 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
  3. 默认值

    • 设置合理的默认值,避免因未找到匹配项而导致测试失败。
  4. 变量名称

    • 确保变量名称有意义且易于理解,便于在后续请求中引用。
  5. 错误处理

    • 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSON 提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JSON 提取器。
    • 配置 JSON 提取器:
      • 名称:提取用户ID
      • JSON路径表达式:$.userId
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

925a84cbfda04731af4b4e32e0c3797f.png


4--边界提取器

功能特点

  • 数据提取:基于前后边界字符串从响应中提取特定的数据。
  • 动态参数传递:将提取的数据存储为变量,供后续请求使用。
  • 简单易用:相比正则表达式,边界提取器的配置更简单直观。

配置步骤

  1. 添加边界提取器

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “边界提取器”(Boundary Extractor)。
  2. 配置边界提取器

    • 名称:给边界提取器一个有意义的名称。
    • 左边界:设置提取数据的左边界字符串。
    • 右边界:设置提取数据的右边界字符串。
    • 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
    • 默认值:设置如果未找到匹配项时的默认值。
    • 输出变量名:设置提取的数据存储的变量名。

参数说明

  • 名称:给边界提取器一个有意义的名称。
  • 左边界:设置提取数据的左边界字符串。
  • 右边界:设置提取数据的右边界字符串。
  • 匹配数字:设置要匹配的次数,例如:
    • -1:匹配所有。
    • 0:随机匹配一个。
    • 1:匹配第一个。
  • 默认值:设置如果未找到匹配项时的默认值。
  • 输出变量名:设置提取的数据存储的变量名,可以在后续请求中引用这个变量。

示例配置

假设我们需要测试一个Web应用,并从登录请求的响应中提取用户的会话标识符(例如JSESSIONID),然后在后续请求中使用该会话标识符。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加边界提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> 边界提取器。
    • 配置边界提取器:
      • 名称:提取会话标识符
      • 左边界:JSESSIONID=
      • 右边界:;
      • 匹配数字:1(匹配第一个)
      • 默认值:NoSessionIDFound
      • 输出变量名:session_id
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user
      • 参数
        • 名称:JSESSIONID
        • :${session_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 边界字符串

    • 确保左边界和右边界字符串正确无误,能够准确匹配所需的数据。可以通过查看响应数据来验证边界字符串的准确性。
  2. 匹配次数

    • 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
  3. 默认值

    • 设置合理的默认值,避免因未找到匹配项而导致测试失败。
  4. 输出变量名

    • 确保输出变量名有意义且易于理解,便于在后续请求中引用。
  5. 错误处理

    • 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从登录请求的响应中提取用户的会话标识符(例如JSESSIONID),然后在后续请求中使用该会话标识符。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加边界提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> 边界提取器。
    • 配置边界提取器:
      • 名称:提取会话标识符
      • 左边界:JSESSIONID=
      • 右边界:;
      • 匹配数字:1(匹配第一个)
      • 默认值:NoSessionIDFound
      • 输出变量名:session_id
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user
      • 参数
        • 名称:JSESSIONID
        • :${session_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

 

 

bb5aa6ef30e6457a938a3f51030f381e.png


5--JSR223 PostProcessor

功能特点

  • 自定义后处理逻辑:使用脚本语言编写自定义的后处理逻辑。
  • 支持多种脚本语言:支持 Groovy、JavaScript、BeanShell 等脚本语言。
  • 动态参数传递:将提取的数据存储为变量,供后续请求使用。
  • 灵活性高:可以执行复杂的逻辑操作,满足复杂的测试需求。

配置步骤

  1. 添加 JSR223 PostProcessor

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “JSR223 PostProcessor”。
  2. 配置 JSR223 PostProcessor

    • 名称:给 JSR223 PostProcessor 一个有意义的名称。
    • 脚本语言:选择使用的脚本语言(例如 Groovy)。
    • 脚本文件:选择脚本文件路径(可选,如果脚本较长或需要版本控制)。
    • 脚本:直接在脚本编辑框中编写脚本。
    • 参数:定义脚本中使用的参数(可选)。

参数说明

  • 名称:给 JSR223 PostProcessor 一个有意义的名称。
  • 脚本语言:选择使用的脚本语言(例如 Groovy)。
  • 脚本文件:选择脚本文件路径(可选,如果脚本较长或需要版本控制)。
  • 脚本:直接在脚本编辑框中编写脚本。
  • 参数:定义脚本中使用的参数(可选)。

示例配置

假设我们需要测试一个Web应用,并在登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSR223 PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JSR223 PostProcessor。
    • 配置 JSR223 PostProcessor:
      • 名称:提取用户ID
      • 脚本语言:Groovy
      • 脚本:在脚本编辑框中编写以下 Groovy 脚本:
        import groovy.json.JsonSlurper
        
        // 解析响应数据
        def response = prev.getResponseDataAsString()
        def jsonSlurper = new JsonSlurper()
        def jsonResponse = jsonSlurper.parseText(response)
        
        // 提取用户ID
        def userId = jsonResponse.userId
        
        // 将用户ID存储为JMeter变量
        vars.put("user_id", userId)
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 脚本语言选择

    • 推荐使用 Groovy 脚本语言,因为它的性能更好且功能更强大。
  2. 脚本文件

    • 如果脚本较长或需要版本控制,可以将脚本保存到文件中,并在 JSR223 PostProcessor 中选择脚本文件路径。
  3. 参数

    • 如果脚本需要使用外部参数,可以在“参数”部分定义参数,并在脚本中引用这些参数。
  4. 性能影响

    • 注意复杂脚本可能会对测试性能产生影响,特别是在大规模性能测试中。可以通过优化脚本和减少不必要的操作来提高性能。
  5. 错误处理

    • 在脚本中添加适当的错误处理逻辑,确保脚本在遇到异常时能够优雅地处理。
  6. 日志记录

    • 使用日志记录功能可以帮助调试和分析脚本执行情况,确保日志文件路径有效且有足够的写权限。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSR223 PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JSR223 PostProcessor。
    • 配置 JSR223 PostProcessor:
      • 名称:提取用户ID
      • 脚本语言:Groovy
      • 脚本:在脚本编辑框中编写以下 Groovy 脚本:
        import groovy.json.JsonSlurper
        
        // 解析响应数据
        def response = prev.getResponseDataAsString()
        def jsonSlurper = new JsonSlurper()
        def jsonResponse = jsonSlurper.parseText(response)
        
        // 提取用户ID
        def userId = jsonResponse.userId
        
        // 将用户ID存储为JMeter变量
        vars.put("user_id", userId)
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

 

 

8fcdd44f3a4140a0abee703c601656d1.png


6--Debug PostProcessor

功能特点

  • 变量和属性查看:显示所有 JMeter 变量和属性的值。
  • 请求和响应数据查看:显示请求和响应的数据。
  • 调试信息:提供详细的调试信息,帮助诊断问题。

配置步骤

  1. 添加 Debug PostProcessor

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “Debug PostProcessor”。
  2. 配置 Debug PostProcessor

    • 名称:给 Debug PostProcessor 一个有意义的名称。
    • 启用:勾选以启用此后处理器。
    • 显示 JMeter 变量:选择是否显示 JMeter 变量。
    • 显示 JMeter 属性:选择是否显示 JMeter 属性。
    • 显示采样器结果:选择是否显示采样器的结果。
    • 显示请求数据:选择是否显示请求数据。
    • 显示响应数据:选择是否显示响应数据。

参数说明

  • 名称:给 Debug PostProcessor 一个有意义的名称。
  • 启用:勾选以启用此后处理器。
  • 显示 JMeter 变量:选择是否显示 JMeter 变量。
  • 显示 JMeter 属性:选择是否显示 JMeter 属性。
  • 显示采样器结果:选择是否显示采样器的结果。
  • 显示请求数据:选择是否显示请求数据。
  • 显示响应数据:选择是否显示响应数据。

示例配置

假设我们需要测试一个Web应用,并在登录请求后使用 Debug PostProcessor 查看提取的用户ID和其他变量的值。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSON 提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JSON 提取器。
    • 配置 JSON 提取器:
      • 名称:提取用户ID
      • JSON路径表达式:$.userId
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加 Debug PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> Debug PostProcessor。
    • 配置 Debug PostProcessor:
      • 名称:调试信息
      • 启用:勾选
      • 显示 JMeter 变量:勾选
      • 显示 JMeter 属性:勾选
      • 显示采样器结果:勾选
      • 显示请求数据:勾选
      • 显示响应数据:勾选
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,可以看到 Debug PostProcessor 输出的调试信息。

优化建议

  1. 启用和禁用

    • 在正式测试中,可以禁用 Debug PostProcessor 以减少不必要的开销。
  2. 选择性显示

    • 根据需要选择显示哪些信息,例如只显示 JMeter 变量或请求数据,以便更快地找到问题。
  3. 结果查看

    • 使用结果树监听器(View Results Tree)或其他监听器查看 Debug PostProcessor 输出的信息,确保变量和数据按预期设置。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望在登录请求后使用 Debug PostProcessor 查看提取的用户ID和其他变量的值。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSON 提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JSON 提取器。
    • 配置 JSON 提取器:
      • 名称:提取用户ID
      • JSON路径表达式:$.userId
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加 Debug PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> Debug PostProcessor。
    • 配置 Debug PostProcessor:
      • 名称:调试信息
      • 启用:勾选
      • 显示 JMeter 变量:勾选
      • 显示 JMeter 属性:勾选
      • 显示采样器结果:勾选
      • 显示请求数据:勾选
      • 显示响应数据:勾选
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,可以看到 Debug PostProcessor 输出的调试信息,包括提取的用户ID和其他变量的值。

 

23ec73027ac94cbb8746a23f09d2b4e9.png


7--JDBC PostProcessor

功能特点

  • 数据库查询:执行 SQL 查询,获取数据库中的数据。
  • 数据提取:从查询结果中提取特定的数据字段。
  • 动态参数传递:将提取的数据存储为变量,供后续请求使用。
  • 支持多种数据库:支持多种数据库类型,如 MySQL、Oracle、PostgreSQL 等。

配置步骤

  1. 添加 JDBC PostProcessor

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “JDBC PostProcessor”。
  2. 配置 JDBC PostProcessor

    • 名称:给 JDBC PostProcessor 一个有意义的名称。
    • 变量名称:设置提取的数据存储的变量名。
    • 查询类型:选择查询类型(例如,Select Statement)。
    • SQL 查询:输入要执行的 SQL 查询语句。
    • 结果变量名称:设置查询结果存储的变量名。
    • 结果集类型:选择结果集类型(例如,Single Value、Multiple Values)。
    • 结果集变量名称:设置结果集中每个列的变量名(如果有多个列,用逗号分隔)。

参数说明

  • 名称:给 JDBC PostProcessor 一个有意义的名称。
  • 变量名称:设置提取的数据存储的变量名。
  • 查询类型:选择查询类型(例如,Select Statement)。
  • SQL 查询:输入要执行的 SQL 查询语句。
  • 结果变量名称:设置查询结果存储的变量名。
  • 结果集类型:选择结果集类型(例如,Single Value、Multiple Values)。
  • 结果集变量名称:设置结果集中每个列的变量名(如果有多个列,用逗号分隔)。

示例配置

假设我们需要测试一个Web应用,并从数据库中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加 JDBC 连接配置

    • 右键点击测试计划 -> 添加 -> 配置元件 -> JDBC Connection Configuration。
    • 配置 JDBC 连接配置:
      • 变量名称:jdbcConfig
      • 数据库 URL:jdbc:mysql://localhost:3306/mydatabase
      • 用户名:root
      • 密码:password
      • JDBC 驱动类:com.mysql.jdbc.Driver
  4. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  5. 添加 JDBC PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JDBC PostProcessor。
    • 配置 JDBC PostProcessor:
      • 名称:提取用户ID
      • 变量名称:user_id
      • 查询类型:Select Statement
      • SQL 查询:SELECT id FROM users WHERE username = 'testuser'
      • 结果变量名称:user_id_result
      • 结果集类型:Single Value
      • 结果集变量名称:user_id
  6. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  7. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 连接配置

    • 确保 JDBC 连接配置正确无误,能够成功连接到数据库。
  2. SQL 查询

    • 确保 SQL 查询语句正确无误,能够返回预期的数据。可以在数据库管理工具中预先测试查询语句。
  3. 结果集类型

    • 根据实际需求选择合适的结果集类型。常见的结果集类型有:
      • Single Value:提取单个值。
      • Multiple Values:提取多个值。
  4. 结果集变量名称

    • 设置合适的结果集变量名称,确保变量名称有意义且易于理解,便于在后续请求中引用。
  5. 错误处理

    • 在测试计划中添加断言和监听器,确保查询结果的正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从数据库中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加 JDBC 连接配置

    • 右键点击测试计划 -> 添加 -> 配置元件 -> JDBC Connection Configuration。
    • 配置 JDBC 连接配置:
      • 变量名称:jdbcConfig
      • 数据库 URL:jdbc:mysql://localhost:3306/mydatabase
      • 用户名:root
      • 密码:password
      • JDBC 驱动类:com.mysql.jdbc.Driver
  4. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  5. 添加 JDBC PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JDBC PostProcessor。
    • 配置 JDBC PostProcessor:
      • 名称:提取用户ID
      • 变量名称:user_id
      • 查询类型:Select Statement
      • SQL 查询:SELECT id FROM users WHERE username = 'testuser'
      • 结果变量名称:user_id_result
      • 结果集类型:Single Value
      • 结果集变量名称:user_id
  6. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  7. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

 

6f14da28627d4deda6b76676a98e6e7e.png


8--Debug PostProcessor

功能特点

  • 变量和属性查看:显示所有 JMeter 变量和属性的值。
  • 请求和响应数据查看:显示请求和响应的数据。
  • 调试信息:提供详细的调试信息,帮助诊断问题。

配置步骤

  1. 添加 Debug PostProcessor

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “Debug PostProcessor”。
  2. 配置 Debug PostProcessor

    • 名称:给 Debug PostProcessor 一个有意义的名称。
    • 启用:勾选以启用此后处理器。
    • 显示 JMeter 变量:选择是否显示 JMeter 变量。
    • 显示 JMeter 属性:选择是否显示 JMeter 属性。
    • 显示采样器结果:选择是否显示采样器的结果。
    • 显示请求数据:选择是否显示请求数据。
    • 显示响应数据:选择是否显示响应数据。

参数说明

  • 名称:给 Debug PostProcessor 一个有意义的名称。
  • 启用:勾选以启用此后处理器。
  • 显示 JMeter 变量:选择是否显示 JMeter 变量。
  • 显示 JMeter 属性:选择是否显示 JMeter 属性。
  • 显示采样器结果:选择是否显示采样器的结果。
  • 显示请求数据:选择是否显示请求数据。
  • 显示响应数据:选择是否显示响应数据。

示例配置

假设我们需要测试一个Web应用,并在登录请求后使用 Debug PostProcessor 查看提取的用户ID和其他变量的值。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSON 提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JSON 提取器。
    • 配置 JSON 提取器:
      • 名称:提取用户ID
      • JSON路径表达式:$.userId
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加 Debug PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> Debug PostProcessor。
    • 配置 Debug PostProcessor:
      • 名称:调试信息
      • 启用:勾选
      • 显示 JMeter 变量:勾选
      • 显示 JMeter 属性:勾选
      • 显示采样器结果:勾选
      • 显示请求数据:勾选
      • 显示响应数据:勾选
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,可以看到 Debug PostProcessor 输出的调试信息。

优化建议

  1. 启用和禁用

    • 在正式测试中,可以禁用 Debug PostProcessor 以减少不必要的开销。
  2. 选择性显示

    • 根据需要选择显示哪些信息,例如只显示 JMeter 变量或请求数据,以便更快地找到问题。
  3. 结果查看

    • 使用结果树监听器(View Results Tree)或其他监听器查看 Debug PostProcessor 输出的信息,确保变量和数据按预期设置。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望在登录请求后使用 Debug PostProcessor 查看提取的用户ID和其他变量的值。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSON 提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JSON 提取器。
    • 配置 JSON 提取器:
      • 名称:提取用户ID
      • JSON路径表达式:$.userId
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加 Debug PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> Debug PostProcessor。
    • 配置 Debug PostProcessor:
      • 名称:调试信息
      • 启用:勾选
      • 显示 JMeter 变量:勾选
      • 显示 JMeter 属性:勾选
      • 显示采样器结果:勾选
      • 显示请求数据:勾选
      • 显示响应数据:勾选
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,可以看到 Debug PostProcessor 输出的调试信息,包括提取的用户ID和其他变量的值。

d643a126b46840188cc7ce3dc2d70624.png


9--XPath2 Extractor

功能特点

  • 数据提取:使用 XPath2 表达式从 XML 响应中提取特定的数据。
  • 动态参数传递:将提取的数据存储为变量,供后续请求使用。
  • 支持丰富的表达式:支持复杂的 XPath2 表表达式,提供丰富的数据提取功能。

配置步骤

  1. 添加 XPath2 Extractor

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “XPath2 Extractor”。
  2. 配置 XPath2 Extractor

    • 名称:给 XPath2 Extractor 一个有意义的名称。
    • XML 响应:选择从哪个响应中提取数据(例如,上一个采样器的响应)。
    • XPath2 表达式:输入用于匹配数据的 XPath2 表达式。
    • 命名空间:如果 XML 响应中有命名空间,可以在这里定义。
    • 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
    • 默认值:设置如果未找到匹配项时的默认值。
    • 变量名称:设置提取的数据存储的变量名。

参数说明

  • 名称:给 XPath2 Extractor 一个有意义的名称。
  • XML 响应:选择从哪个响应中提取数据(例如,上一个采样器的响应)。
  • XPath2 表达式:输入用于匹配数据的 XPath2 表达式。
  • 命名空间:如果 XML 响应中有命名空间,可以在这里定义。
  • 匹配数字:设置要匹配的次数,例如:
    • -1:匹配所有。
    • 0:随机匹配一个。
    • 1:匹配第一个。
  • 默认值:设置如果未找到匹配项时的默认值。
  • 变量名称:设置提取的数据存储的变量名,可以在后续请求中引用这个变量。

示例配置

假设我们需要测试一个Web应用,并从登录请求的 XML 响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 XPath2 Extractor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> XPath2 Extractor。
    • 配置 XPath2 Extractor:
      • 名称:提取用户ID
      • XML 响应:上一个采样器的响应
      • XPath2 表达式://user/id/text()
      • 命名空间:(如果有命名空间,可以在这里定义)
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. XPath2 表达式

    • 确保 XPath2 表达式正确无误,能够准确匹配所需的数据。可以使用在线 XPath 测试工具进行验证。
  2. 命名空间

    • 如果 XML 响应中有命名空间,确保在 XPath2 Extractor 中正确配置命名空间。
  3. 匹配次数

    • 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
  4. 默认值

    • 设置合理的默认值,避免因未找到匹配项而导致测试失败。
  5. 变量名称

    • 确保变量名称有意义且易于理解,便于在后续请求中引用。
  6. 错误处理

    • 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从登录请求的 XML 响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 XPath2 Extractor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> XPath2 Extractor。
    • 配置 XPath2 Extractor:
      • 名称:提取用户ID
      • XML 响应:上一个采样器的响应
      • XPath2 表达式://user/id/text()
      • 命名空间:(如果有命名空间,可以在这里定义)
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保提取的用户ID和其他变量的值按预期设置。

 

a12b2e907df8439a8b5d6904b9b1b544.png


10--Xpath提取器

 

功能特点

  • 数据提取:使用 XPath 表达式从 XML 响应中提取特定的数据。
  • 动态参数传递:将提取的数据存储为变量,供后续请求使用。
  • 支持丰富的表达式:支持复杂的 XPath 表达式,提供丰富的数据提取功能。

配置步骤

  1. 添加 XPath Extractor

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “XPath Extractor”。
  2. 配置 XPath Extractor

    • 名称:给 XPath Extractor 一个有意义的名称。
    • XML 响应:选择从哪个响应中提取数据(例如,上一个采样器的响应)。
    • 使用 Namespaces:如果 XML 响应中有命名空间,勾选此项。
    • Namespaces:如果勾选了“使用 Namespaces”,在这里定义命名空间。
    • XPath 表达式:输入用于匹配数据的 XPath 表达式。
    • 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
    • 默认值:设置如果未找到匹配项时的默认值。
    • 变量名称:设置提取的数据存储的变量名。

参数说明

  • 名称:给 XPath Extractor 一个有意义的名称。
  • XML 响应:选择从哪个响应中提取数据(例如,上一个采样器的响应)。
  • 使用 Namespaces:如果 XML 响应中有命名空间,勾选此项。
  • Namespaces:如果勾选了“使用 Namespaces”,在这里定义命名空间。
  • XPath 表达式:输入用于匹配数据的 XPath 表达式。
  • 匹配数字:设置要匹配的次数,例如:
    • -1:匹配所有。
    • 0:随机匹配一个。
    • 1:匹配第一个。
  • 默认值:设置如果未找到匹配项时的默认值。
  • 变量名称:设置提取的数据存储的变量名,可以在后续请求中引用这个变量。

示例配置

假设我们需要测试一个Web应用,并从登录请求的 XML 响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 XPath Extractor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> XPath Extractor。
    • 配置 XPath Extractor:
      • 名称:提取用户ID
      • XML 响应:上一个采样器的响应
      • 使用 Namespaces:如果 XML 响应中有命名空间,勾选此项。
      • Namespaces:如果勾选了“使用 Namespaces”,在这里定义命名空间。
      • XPath 表达式://user/id/text()
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. XPath 表达式

    • 确保 XPath 表达式正确无误,能够准确匹配所需的数据。可以使用在线 XPath 测试工具进行验证。
  2. 命名空间

    • 如果 XML 响应中有命名空间,确保在 XPath Extractor 中正确配置命名空间。
  3. 匹配次数

    • 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
  4. 默认值

    • 设置合理的默认值,避免因未找到匹配项而导致测试失败。
  5. 变量名称

    • 确保变量名称有意义且易于理解,便于在后续请求中引用。
  6. 错误处理

    • 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从登录请求的 XML 响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 XPath Extractor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> XPath Extractor。
    • 配置 XPath Extractor:
      • 名称:提取用户ID
      • XML 响应:上一个采样器的响应
      • 使用 Namespaces:如果 XML 响应中有命名空间,勾选此项。
      • Namespaces:如果勾选了“使用 Namespaces”,在这里定义命名空间。
      • XPath 表达式://user/id/text()
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保提取的用户ID和其他变量的值按预期设置。

5c82022724f344c59b928431b5cf66c7.png


11--结果状态处理器

功能特点

  • 条件判断:根据前一个采样器的响应状态(成功或失败)执行不同的操作。
  • 操作类型:支持多种操作类型,如停止线程、重试请求、继续执行等。
  • 灵活性高:可以根据实际需求灵活配置,满足复杂的测试场景。

配置步骤

  1. 添加结果状态处理器

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “结果状态处理器”(Result Status Action Handler)。
  2. 配置结果状态处理器

    • 名称:给结果状态处理器一个有意义的名称。
    • 失败时的动作:选择失败时的操作类型(例如,停止线程、重试请求、继续执行)。
    • 成功时的动作:选择成功时的操作类型(例如,继续执行)。

参数说明

  • 名称:给结果状态处理器一个有意义的名称。
  • 失败时的动作:选择失败时的操作类型,例如:
    • 继续:继续执行下一个采样器。
    • 停止线程:停止当前线程。
    • 停止测试:停止整个测试。
    • 重试请求:重试当前请求。
  • 成功时的动作:选择成功时的操作类型,通常选择“继续执行”。

示例配置

假设我们需要测试一个Web应用,并在登录请求失败时停止当前线程,而在成功时继续执行后续请求。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加结果状态处理器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> 结果状态处理器。
    • 配置结果状态处理器:
      • 名称:处理登录请求结果
      • 失败时的动作:停止线程
      • 成功时的动作:继续执行
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 操作类型选择

    • 根据实际需求选择合适的操作类型。例如,如果登录失败,可能需要停止当前线程以避免后续请求的无效执行。
  2. 错误处理

    • 在测试计划中添加断言和监听器,确保请求的成功率和返回数据的正确性。
  3. 日志记录

    • 使用日志记录功能可以帮助调试和分析测试结果,确保日志文件路径有效且有足够的写权限。
  4. 测试场景

    • 根据具体的测试场景配置结果状态处理器,确保测试流程的合理性和准确性。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望在登录请求失败时停止当前线程,而在成功时继续执行后续请求。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加结果状态处理器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> 结果状态处理器。
    • 配置结果状态处理器:
      • 名称:处理登录请求结果
      • 失败时的动作:停止线程
      • 成功时的动作:继续执行
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的结果按预期处理,失败时停止线程,成功时继续执行后续请求。

 

51286d7c54e546439f2be7e1960b3ca5.png


12--BeanShell PostProcessor

功能特点

  • 脚本编写:使用 BeanShell 脚本语言编写自定义逻辑。
  • 数据处理:处理采样器的响应数据,进行数据转换、条件判断等操作。
  • 变量设置:设置和修改 JMeter 变量。
  • 灵活性高:支持复杂的逻辑操作,满足各种测试需求。

配置步骤

  1. 添加 BeanShell PostProcessor

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “BeanShell PostProcessor”。
  2. 配置 BeanShell PostProcessor

    • 名称:给 BeanShell PostProcessor 一个有意义的名称。
    • 脚本:编写 BeanShell 脚本,实现所需的逻辑操作。
    • 参数:设置脚本中使用的参数(可选)。
    • 文件名:指定一个包含 BeanShell 脚本的文件(可选)。

参数说明

  • 名称:给 BeanShell PostProcessor 一个有意义的名称。
  • 脚本:编写 BeanShell 脚本,实现所需的逻辑操作。
  • 参数:设置脚本中使用的参数(可选)。
  • 文件名:指定一个包含 BeanShell 脚本的文件(可选)。

示例配置

假设我们需要测试一个Web应用,并在登录请求后使用 BeanShell PostProcessor 处理响应数据,提取用户的ID并设置为变量,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 BeanShell PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> BeanShell PostProcessor。
    • 配置 BeanShell PostProcessor:
      • 名称:处理登录响应
      • 脚本
        // 获取响应数据
        String response = prev.getResponseDataAsString();
        
        // 解析 JSON 响应数据
        import org.json.JSONObject;
        JSONObject json = new JSONObject(response);
        
        // 提取用户ID
        String userId = json.getString("userId");
        
        // 设置用户ID为变量
        vars.put("user_id", userId);
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 脚本编写

    • 确保 BeanShell 脚本正确无误,能够正确处理响应数据。可以使用 BeanShell 控制台进行脚本测试。
  2. 导入必要的类

    • 如果需要使用外部类(如 org.json.JSONObject),确保在脚本中正确导入这些类。
  3. 变量管理

    • 使用 vars.put 方法设置变量,确保变量名称有意义且易于理解,便于在后续请求中引用。
  4. 错误处理

    • 在脚本中添加适当的错误处理逻辑,避免因数据解析错误导致测试失败。
  5. 性能考虑

    • BeanShell 脚本可能会增加测试的开销,特别是在大量并发请求的情况下。确保脚本高效且简洁。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望在登录请求后使用 BeanShell PostProcessor 处理响应数据,提取用户的ID并设置为变量,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 BeanShell PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> BeanShell PostProcessor。
    • 配置 BeanShell PostProcessor:
      • 名称:处理登录响应
      • 脚本
        // 获取响应数据
        String response = prev.getResponseDataAsString();
        
        // 解析 JSON 响应数据
        import org.json.JSONObject;
        JSONObject json = new JSONObject(response);
        
        // 提取用户ID
        String userId = json.getString("userId");
        
        // 设置用户ID为变量
        vars.put("user_id", userId);
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据按预期处理,提取的用户ID和其他变量的值按预期设置。

ff6ff4fd664245bd9bd30b1db1d0b569.png


13--正则表达式提取器

功能特点

  • 数据提取:使用正则表达式从响应数据中提取特定的信息。
  • 动态参数传递:将提取的数据存储为变量,供后续请求使用。
  • 支持丰富的正则表达式:支持复杂的正则表达式,提供丰富的数据提取功能。

配置步骤

  1. 添加正则表达式提取器

    • 右键点击需要添加后处理器的请求或线程组。
    • 选择“添加” -> “后处理器” -> “正则表达式提取器”。
  2. 配置正则表达式提取器

    • 名称:给正则表达式提取器一个有意义的名称。
    • 适用范围:选择正则表达式提取器作用的范围(例如,主样本或子样本)。
    • 响应字段:选择从响应的哪个部分提取数据(例如,Body、Headers等)。
    • 正则表达式:输入用于匹配数据的正则表达式。
    • 模板:定义如何从匹配结果中提取数据(默认是 $1$ 表示第一个捕获组)。
    • 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
    • 默认值:设置如果未找到匹配项时的默认值。
    • 变量名称:设置提取的数据存储的变量名。

参数说明

  • 名称:给正则表达式提取器一个有意义的名称。
  • 适用范围:选择正则表达式提取器作用的范围(例如,主样本或子样本)。
  • 响应字段:选择从响应的哪个部分提取数据(例如,Body、Headers等)。
  • 正则表达式:输入用于匹配数据的正则表达式。
  • 模板:定义如何从匹配结果中提取数据(默认是 $1$ 表示第一个捕获组)。
  • 匹配数字:设置要匹配的次数,例如:
    • -1:匹配所有。
    • 0:随机匹配一个。
    • 1:匹配第一个。
  • 默认值:设置如果未找到匹配项时的默认值。
  • 变量名称:设置提取的数据存储的变量名,可以在后续请求中引用这个变量。

示例配置

假设我们需要测试一个Web应用,并从登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:目标服务器的地址(例如example.com)。
      • 端口号:目标服务器的端口(例如80)。
      • 协议:HTTP或HTTPS(例如HTTP)。
      • 方法:POST
      • 路径:请求的路径(例如/login)。
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加正则表达式提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> 正则表达式提取器。
    • 配置正则表达式提取器:
      • 名称:提取用户ID
      • 适用范围:主样本
      • 响应字段:Body
      • 正则表达式"userId":"(.*?)" (假设响应中用户ID的格式是 "userId":"12345"
      • 模板$1$ (表示第一个捕获组)
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。

优化建议

  1. 正则表达式

    • 确保正则表达式正确无误,能够准确匹配所需的数据。可以使用在线正则表达式测试工具进行验证。
  2. 匹配次数

    • 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
  3. 默认值

    • 设置合理的默认值,避免因未找到匹配项而导致测试失败。
  4. 变量名称

    • 确保变量名称有意义且易于理解,便于在后续请求中引用。
  5. 错误处理

    • 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。

  1. 创建测试计划

    • 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
  2. 添加线程组

    • 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
    • 配置线程组:
      • 线程数:1(模拟1个用户)
      • 循环次数:1(每个用户发送1次请求)
      • 启动延迟:0(立即启动)
  3. 添加登录请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:登录请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加正则表达式提取器

    • 右键点击登录请求 -> 添加 -> 后处理器 -> 正则表达式提取器。
    • 配置正则表达式提取器:
      • 名称:提取用户ID
      • 适用范围:主样本
      • 响应字段:Body
      • 正则表达式"userId":"(.*?)" (假设响应中用户ID的格式是 "userId":"12345"
      • 模板$1$ (表示第一个捕获组)
      • 匹配数字:1(匹配第一个)
      • 默认值:NoUserIDFound
      • 变量名称:user_id
  5. 添加后续请求

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:用户详情请求
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据按预期处理,提取的用户ID和其他变量的值按预期设置。

 

3f653f73337e424a953aa24e73f6e48f.png


 

 


http://www.kler.cn/a/413742.html

相关文章:

  • Linux服务器安装mongodb
  • Unity shaderlab 实现LineSDF
  • web博客系统的自动化测试
  • 【MySQL篇】持久化和非持久化统计信息的深度剖析(第一篇,总共六篇)
  • 七牛云AIGC内容安全方案助力企业合规创新
  • 【5】STM32·FreeRTOS·临界段保护与调度器挂起
  • 代码美学2:MATLAB制作渐变色
  • DVWA靶场通过——文件上传漏洞
  • 预测未来 | MATLAB实现Transformer时间序列预测未来
  • 【方案库】从单张照片快速重建3D场景:Flash3D详解
  • 【Ubuntu24.04】服务部署(Docker)
  • 实验二 系统响应及系统稳定性
  • 【11-20期】Java面试进阶:深入解析核心问题与实战案例
  • Linux基础学习--vi与vim
  • 读《Effective Java》笔记 - 条目10
  • 化工行业 FMEA 与安全生产的关系
  • Java使用反射记录操作日志
  • 23省赛区块链应用与维护(房屋租凭【下】)
  • json object转x-www-form-urlencoded
  • ShuffleNet V2:高效卷积神经网络架构设计的实用指南
  • 计算机视觉中的距离变换:经典案例与Python代码解析
  • 无人机产业发展如何?如何进行产业分析?
  • 视觉感知与处理:解密计算机视觉的未来
  • MySQL子查询介绍和where后的标量子查询
  • yarn 任务 beyond the ‘PHYSICAL‘ memory limit 报错处理
  • 半导体、晶体管、集成电路、芯片、CPU、单片机、单片机最小系统、单片机开发板-概念串联辨析