后置处理器
1--CSS/JQuery提取器
功能特点
- 数据提取:使用CSS选择器或JQuery语法从HTML响应中提取特定的数据。
- 动态参数传递:将提取的数据存储为变量,供后续请求使用。
- 支持多种选择器:支持CSS选择器和JQuery语法,提供丰富的选择器功能。
配置步骤
-
添加 CSS/JQuery 提取器
- 右键点击需要添加后处理器的请求或线程组。
- 选择“添加” -> “后处理器” -> “CSS/JQuery 提取器”(CSS/JQuery Extractor)。
-
配置 CSS/JQuery 提取器
- 名称:给 CSS/JQuery 提取器一个有意义的名称。
- 应用到:选择要应用提取器的响应类型(例如,主样本、子样本等)。
- CSS/JQuery表达式:输入用于匹配数据的选择器。
- 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
- 默认值:设置如果未找到匹配项时的默认值。
- 输出变量名:设置提取的数据存储的变量名。
参数说明
- 名称:给 CSS/JQuery 提取器一个有意义的名称。
- 应用到:选择要应用提取器的响应类型,例如:
- 主样本:仅应用到主样本。
- 子样本:仅应用到子样本。
- 主样本和子样本:应用到主样本和子样本。
- CSS/JQuery表达式:输入用于匹配数据的选择器,支持CSS选择器和JQuery语法。
- 匹配数字:设置要匹配的次数,例如:
- -1:匹配所有。
- 0:随机匹配一个。
- 1:匹配第一个。
- 默认值:设置如果未找到匹配项时的默认值。
- 输出变量名:设置提取的数据存储的变量名,可以在后续请求中引用这个变量。
示例配置
假设我们需要测试一个Web应用,并从首页请求的响应中提取某个元素的文本内容,然后在后续请求中使用该文本内容。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加首页请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:首页请求
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:GET
- 路径:请求的路径(例如
/
)。
-
添加 CSS/JQuery 提取器:
- 右键点击首页请求 -> 添加 -> 后处理器 -> CSS/JQuery 提取器。
- 配置 CSS/JQuery 提取器:
- 名称:提取标题文本
- 应用到:主样本
- CSS/JQuery表达式:h1.title
- 匹配数字:1(匹配第一个)
- 默认值:NoTitleFound
- 输出变量名:title_text
-
添加后续请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:详情页请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/${title_text}
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
优化建议
-
选择器准确性:
- 确保CSS选择器或JQuery表达式正确无误,能够准确匹配所需的数据。可以使用浏览器开发者工具中的“选择元素”功能进行验证。
-
匹配次数:
- 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
-
默认值:
- 设置合理的默认值,避免因未找到匹配项而导致测试失败。
-
输出变量名:
- 确保输出变量名有意义且易于理解,便于在后续请求中引用。
-
错误处理:
- 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从首页请求的响应中提取某个元素的文本内容,然后在后续请求中使用该文本内容。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加首页请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:首页请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/
-
添加 CSS/JQuery 提取器:
- 右键点击首页请求 -> 添加 -> 后处理器 -> CSS/JQuery 提取器。
- 配置 CSS/JQuery 提取器:
- 名称:提取标题文本
- 应用到:主样本
- CSS/JQuery表达式:h1.title
- 匹配数字:1(匹配第一个)
- 默认值:NoTitleFound
- 输出变量名:title_text
-
添加后续请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:详情页请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/${title_text}
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
2--JSON JMESPath Extractor
功能特点
- 数据提取:使用 JMESPath 表达式从JSON响应中提取特定的数据。
- 动态参数传递:将提取的数据存储为变量,供后续请求使用。
- 支持丰富的表达式:支持复杂的 JMESPath 表达式,提供丰富的数据提取功能。
配置步骤
-
添加 JSON JMESPath 提取器
- 右键点击需要添加后处理器的请求或线程组。
- 选择“添加” -> “后处理器” -> “JSON JMESPath 提取器”(JSON JMESPath Extractor)。
-
配置 JSON JMESPath 提取器
- 名称:给 JSON JMESPath 提取器一个有意义的名称。
- 变量名称前缀:设置提取的数据存储的变量名前缀。
- JSON路径表达式:输入用于匹配数据的 JMESPath 表达式。
- 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
- 默认值:设置如果未找到匹配项时的默认值。
参数说明
- 名称:给 JSON JMESPath 提取器一个有意义的名称。
- 变量名称前缀:设置提取的数据存储的变量名前缀,实际变量名为前缀加上索引(例如,
varName_1
)。 - JSON路径表达式:输入用于匹配数据的 JMESPath 表达式。
- 匹配数字:设置要匹配的次数,例如:
- -1:匹配所有。
- 0:随机匹配一个。
- 1:匹配第一个。
- 默认值:设置如果未找到匹配项时的默认值。
示例配置
假设我们需要测试一个Web应用,并从登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:POST
- 路径:请求的路径(例如
/login
)。 - 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 JSON JMESPath 提取器:
- 右键点击登录请求 -> 添加 -> 后处理器 -> JSON JMESPath 提取器。
- 配置 JSON JMESPath 提取器:
- 名称:提取用户ID
- 变量名称前缀:user_id
- JSON路径表达式:userId
- 匹配数字:1(匹配第一个)
- 默认值:NoUserIDFound
-
添加后续请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:用户详情请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/user/${user_id_1}
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
优化建议
-
JMESPath 表达式:
- 确保 JMESPath 表达式正确无误,能够准确匹配所需的数据。可以使用在线 JMESPath 测试工具进行验证。
-
匹配次数:
- 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
-
默认值:
- 设置合理的默认值,避免因未找到匹配项而导致测试失败。
-
变量名称前缀:
- 确保变量名称前缀有意义且易于理解,便于在后续请求中引用。
-
错误处理:
- 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:POST
- 路径:/login
- 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 JSON JMESPath 提取器:
- 右键点击登录请求 -> 添加 -> 后处理器 -> JSON JMESPath 提取器。
- 配置 JSON JMESPath 提取器:
- 名称:提取用户ID
- 变量名称前缀:user_id
- JSON路径表达式:userId
- 匹配数字:1(匹配第一个)
- 默认值:NoUserIDFound
-
添加后续请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:用户详情请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/user/${user_id_1}
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
3--JSON 提取器
功能特点
- 数据提取:使用 JSONPath 表达式从JSON响应中提取特定的数据。
- 动态参数传递:将提取的数据存储为变量,供后续请求使用。
- 支持丰富的表达式:支持复杂的 JSONPath 表达式,提供丰富的数据提取功能。
配置步骤
-
添加 JSON 提取器
- 右键点击需要添加后处理器的请求或线程组。
- 选择“添加” -> “后处理器” -> “JSON 提取器”(JSON Extractor)。
-
配置 JSON 提取器
- 名称:给 JSON 提取器一个有意义的名称。
- JSON路径表达式:输入用于匹配数据的 JSONPath 表达式。
- 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
- 默认值:设置如果未找到匹配项时的默认值。
- 变量名称:设置提取的数据存储的变量名。
参数说明
- 名称:给 JSON 提取器一个有意义的名称。
- JSON路径表达式:输入用于匹配数据的 JSONPath 表达式。
- 匹配数字:设置要匹配的次数,例如:
- -1:匹配所有。
- 0:随机匹配一个。
- 1:匹配第一个。
- 默认值:设置如果未找到匹配项时的默认值。
- 变量名称:设置提取的数据存储的变量名,可以在后续请求中引用这个变量。
示例配置
假设我们需要测试一个Web应用,并从登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:POST
- 路径:请求的路径(例如
/login
)。 - 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 JSON 提取器:
- 右键点击登录请求 -> 添加 -> 后处理器 -> JSON 提取器。
- 配置 JSON 提取器:
- 名称:提取用户ID
- JSON路径表达式:$.userId
- 匹配数字:1(匹配第一个)
- 默认值:NoUserIDFound
- 变量名称:user_id
-
添加后续请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:用户详情请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/user/${user_id}
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
优化建议
-
JSONPath 表达式:
- 确保 JSONPath 表达式正确无误,能够准确匹配所需的数据。可以使用在线 JSONPath 测试工具进行验证。
-
匹配次数:
- 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
-
默认值:
- 设置合理的默认值,避免因未找到匹配项而导致测试失败。
-
变量名称:
- 确保变量名称有意义且易于理解,便于在后续请求中引用。
-
错误处理:
- 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从登录请求的响应中提取用户的ID,然后在后续请求中使用该用户ID。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:POST
- 路径:/login
- 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 JSON 提取器:
- 右键点击登录请求 -> 添加 -> 后处理器 -> JSON 提取器。
- 配置 JSON 提取器:
- 名称:提取用户ID
- JSON路径表达式:$.userId
- 匹配数字:1(匹配第一个)
- 默认值:NoUserIDFound
- 变量名称:user_id
-
添加后续请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:用户详情请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/user/${user_id}
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
4--边界提取器
功能特点
- 数据提取:基于前后边界字符串从响应中提取特定的数据。
- 动态参数传递:将提取的数据存储为变量,供后续请求使用。
- 简单易用:相比正则表达式,边界提取器的配置更简单直观。
配置步骤
-
添加边界提取器
- 右键点击需要添加后处理器的请求或线程组。
- 选择“添加” -> “后处理器” -> “边界提取器”(Boundary Extractor)。
-
配置边界提取器
- 名称:给边界提取器一个有意义的名称。
- 左边界:设置提取数据的左边界字符串。
- 右边界:设置提取数据的右边界字符串。
- 匹配数字:设置要匹配的次数(例如,-1表示匹配所有,0表示随机匹配一个,1表示匹配第一个)。
- 默认值:设置如果未找到匹配项时的默认值。
- 输出变量名:设置提取的数据存储的变量名。
参数说明
- 名称:给边界提取器一个有意义的名称。
- 左边界:设置提取数据的左边界字符串。
- 右边界:设置提取数据的右边界字符串。
- 匹配数字:设置要匹配的次数,例如:
- -1:匹配所有。
- 0:随机匹配一个。
- 1:匹配第一个。
- 默认值:设置如果未找到匹配项时的默认值。
- 输出变量名:设置提取的数据存储的变量名,可以在后续请求中引用这个变量。
示例配置
假设我们需要测试一个Web应用,并从登录请求的响应中提取用户的会话标识符(例如JSESSIONID
),然后在后续请求中使用该会话标识符。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:POST
- 路径:请求的路径(例如
/login
)。 - 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加边界提取器:
- 右键点击登录请求 -> 添加 -> 后处理器 -> 边界提取器。
- 配置边界提取器:
- 名称:提取会话标识符
- 左边界:JSESSIONID=
- 右边界:;
- 匹配数字:1(匹配第一个)
- 默认值:NoSessionIDFound
- 输出变量名:session_id
-
添加后续请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:用户详情请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/user
- 参数:
- 名称:JSESSIONID
- 值:${session_id}
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
优化建议
-
边界字符串:
- 确保左边界和右边界字符串正确无误,能够准确匹配所需的数据。可以通过查看响应数据来验证边界字符串的准确性。
-
匹配次数:
- 根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。
-
默认值:
- 设置合理的默认值,避免因未找到匹配项而导致测试失败。
-
输出变量名:
- 确保输出变量名有意义且易于理解,便于在后续请求中引用。
-
错误处理:
- 在测试计划中添加断言和监听器,确保提取的数据正确性和请求的成功率。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望从登录请求的响应中提取用户的会话标识符(例如JSESSIONID
),然后在后续请求中使用该会话标识符。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:POST
- 路径:/login
- 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加边界提取器:
- 右键点击登录请求 -> 添加 -> 后处理器 -> 边界提取器。
- 配置边界提取器:
- 名称:提取会话标识符
- 左边界:JSESSIONID=
- 右边界:;
- 匹配数字:1(匹配第一个)
- 默认值:NoSessionIDFound
- 输出变量名:session_id
-
添加后续请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:用户详情请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/user
- 参数:
- 名称:JSESSIONID
- 值:${session_id}
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。