Jmeter后置处理器

6)后置处理器

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请求:
      • 名称:详情页请求
      • 服务器名称或IPexample.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请求:
      • 名称:首页请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/
  4. 添加 CSS/JQuery 提取器

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

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

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

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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.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请求:
      • 名称:登录请求
      • 服务器名称或IPexample.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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id_1}
  6. 运行测试

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

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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.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请求:
      • 名称:登录请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSON 提取器

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

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

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

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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.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请求:
      • 名称:登录请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加边界提取器

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

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

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

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 脚本:

        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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.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请求:
      • 名称:登录请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 JSR223 PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> JSR223 PostProcessor。
    • 配置 JSR223 PostProcessor:
      • 名称:提取用户ID

      • 脚本语言:Groovy

      • 脚本 :在脚本编辑框中编写以下 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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

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

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请求:
      • 名称:登录请求
      • 服务器名称或IPexample.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和其他变量的值。

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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.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请求:
      • 名称:登录请求
      • 服务器名称或IPexample.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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  7. 运行测试

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

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请求:
      • 名称:登录请求
      • 服务器名称或IPexample.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和其他变量的值。

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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.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请求:
      • 名称:登录请求
      • 服务器名称或IPexample.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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

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

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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.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请求:
      • 名称:登录请求
      • 服务器名称或IPexample.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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

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

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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

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

优化建议

  1. 操作类型选择

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

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

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

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

示例配置详细说明

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

  1. 创建测试计划

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

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

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

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

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

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

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:
      • 名称:处理登录响应

      • 脚本

        java 复制代码
        // 获取响应数据
        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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.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请求:
      • 名称:登录请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加 BeanShell PostProcessor

    • 右键点击登录请求 -> 添加 -> 后处理器 -> BeanShell PostProcessor。
    • 配置 BeanShell PostProcessor:
      • 名称:处理登录响应

      • 脚本

        java 复制代码
        // 获取响应数据
        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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/user/${user_id}
  6. 运行测试

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

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请求:
      • 名称:用户详情请求
      • 服务器名称或IPexample.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请求:
      • 名称:登录请求
      • 服务器名称或IPexample.com
      • 端口号:80
      • 协议:HTTP
      • 方法:POST
      • 路径:/login
      • 参数
        • 名称:username
        • :testuser
        • 名称:password
        • :testpass
  4. 添加正则表达式提取器

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

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

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

相关推荐
Heaven6453 小时前
4.6 JMeter HTTP信息头管理器
软件测试·网络协议·jmeter·http
美团测试工程师3 小时前
Fiddler导出JMeter脚本插件原理
前端·jmeter·fiddler
大佬,救命!!!5 小时前
fiddler抓包工具与requests库构建自动化报告
笔记·python·测试工具·fiddler·自动化·requests·开源推荐
钱钱钱端5 小时前
8年经验之谈 —— 如何使用自动化工具编写测试用例?
自动化测试·测试工具·测试用例·压力测试·postman·性能测试
DC妙妙屋7 小时前
11.25.2024刷华为OD
1024程序员节
木有会10 小时前
【jmeter】服务器使用jmeter压力测试(从安装到简单压测示例)
jmeter·压力测试
独行soc10 小时前
#渗透测试#SRC漏洞挖掘#红蓝攻防#黑客工具之XSStrike介绍01
测试工具·安全·渗透测试·xss·漏洞挖掘·逻辑漏洞
f4uIt12 小时前
wireshark基础
测试工具·wireshark·php
qq_4337169512 小时前
python excel接口自动化测试框架!
python·功能测试·测试工具·excel·接口测试·压力测试·postman