老婆出轨 发表于 2024-11-29 02:11:12

Jmeter后置处置惩罚器

 6)后置处置惩罚器

https://i-blog.csdnimg.cn/direct/90a2456503a7493c9fc04e1fc149b280.png
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}


[*] 运行测试:

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

 
 
https://i-blog.csdnimg.cn/direct/aafc4d46ddde4960bbd87e2e58220646.png
 
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}


[*] 运行测试:

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

https://i-blog.csdnimg.cn/direct/1e0afbc094584f86b9f5dc8dbb9ca897.png
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}


[*] 运行测试:

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

https://i-blog.csdnimg.cn/direct/925a84cbfda04731af4b4e32e0c3797f.png
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}



[*] 运行测试:

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

 
 
https://i-blog.csdnimg.cn/direct/bb5aa6ef30e6457a938a3f51030f381e.png
5--JSR223 PostProcessor
功能特点


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

[*] 添加 JSR223 PostProcessor

[*]右键点击需要添加后处置惩罚器的请求或线程组。
[*]选择“添加” -> “后处置惩罚器” -> “JSR223 PostProcessor”。

[*] 设置 JSR223 PostProcessor

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

参数阐明


[*]名称:给 JSR223 PostProcessor 一个有意义的名称。
[*]脚本语言:选择利用的脚本语言(例如 Groovy)。
[*]脚本文件:选择脚本文件路径(可选,如果脚本较长或需要版本控制)。
[*]脚本:直接在脚本编辑框中编写脚本。
[*]参数:定义脚本中利用的参数(可选)。
示例设置
假设我们需要测试一个Web应用,并在登录请求的响应中提取用户的ID,然后在后续请求中利用该用户ID。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:目标服务器的地点(例如example.com)。
[*]端口号:目标服务器的端口(例如80)。
[*]协议:HTTP或HTTPS(例如HTTP)。
[*]方法:POST
[*]路径:请求的路径(例如/login)。
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加 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)


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

优化建议

[*] 脚本语言选择:

[*]推荐利用 Groovy 脚本语言,因为它的性能更好且功能更强大。

[*] 脚本文件:

[*]如果脚本较长或需要版本控制,可以将脚本保存到文件中,并在 JSR223 PostProcessor 中选择脚本文件路径。

[*] 参数:

[*]如果脚本需要利用外部参数,可以在“参数”部门定义参数,并在脚本中引用这些参数。

[*] 性能影响:

[*]留意复杂脚本可能会对测试性能产生影响,特殊是在大规模性能测试中。可以通过优化脚本和减少不须要的操作来提高性能。

[*] 错误处置惩罚:

[*]在脚本中添加得当的错误处置惩罚逻辑,确保脚本在碰到异常时能够优雅地处置惩罚。

[*] 日记记录:

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

示例设置详细阐明
假设我们有一个简朴的测试计划,包罗一个线程组和两个HTTP请求,并希望从登录请求的响应中提取用户的ID,然后在后续请求中利用该用户ID。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:POST
[*]路径:/login
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加 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)


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

 
 
https://i-blog.csdnimg.cn/direct/8fcdd44f3a4140a0abee703c601656d1.png
6--Debug PostProcessor
功能特点


[*]变量和属性检察:体现所有 JMeter 变量和属性的值。
[*]请求和响应数据检察:体现请求和响应的数据。
[*]调试信息:提供详细的调试信息,帮助诊断问题。
设置步骤

[*] 添加 Debug PostProcessor

[*]右键点击需要添加后处置惩罚器的请求或线程组。
[*]选择“添加” -> “后处置惩罚器” -> “Debug PostProcessor”。

[*] 设置 Debug PostProcessor

[*]名称:给 Debug PostProcessor 一个有意义的名称。
[*]启用:勾选以启用此后处置惩罚器。
[*]体现 JMeter 变量:选择是否体现 JMeter 变量。
[*]体现 JMeter 属性:选择是否体现 JMeter 属性。
[*]体现采样器效果:选择是否体现采样器的效果。
[*]体现请求数据:选择是否体现请求数据。
[*]体现响应数据:选择是否体现响应数据。

参数阐明


[*]名称:给 Debug PostProcessor 一个有意义的名称。
[*]启用:勾选以启用此后处置惩罚器。
[*]体现 JMeter 变量:选择是否体现 JMeter 变量。
[*]体现 JMeter 属性:选择是否体现 JMeter 属性。
[*]体现采样器效果:选择是否体现采样器的效果。
[*]体现请求数据:选择是否体现请求数据。
[*]体现响应数据:选择是否体现响应数据。
示例设置
假设我们需要测试一个Web应用,并在登录请求后利用 Debug PostProcessor 检察提取的用户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


[*] 添加 Debug PostProcessor:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> Debug PostProcessor。
[*]设置 Debug PostProcessor:

[*]名称:调试信息
[*]启用:勾选
[*]体现 JMeter 变量:勾选
[*]体现 JMeter 属性:勾选
[*]体现采样器效果:勾选
[*]体现请求数据:勾选
[*]体现响应数据:勾选


[*] 运行测试:

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

优化建议

[*] 启用和禁用:

[*]在正式测试中,可以禁用 Debug PostProcessor 以减少不须要的开销。

[*] 选择性体现:

[*]根据需要选择体现哪些信息,例如只体现 JMeter 变量或请求数据,以便更快地找到问题。

[*] 效果检察:

[*]利用效果树监听器(View Results Tree)或其他监听器检察 Debug PostProcessor 输出的信息,确保变量和数据按预期设置。

示例设置详细阐明
假设我们有一个简朴的测试计划,包罗一个线程组和一个HTTP请求,并希望在登录请求后利用 Debug PostProcessor 检察提取的用户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


[*] 添加 Debug PostProcessor:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> Debug PostProcessor。
[*]设置 Debug PostProcessor:

[*]名称:调试信息
[*]启用:勾选
[*]体现 JMeter 变量:勾选
[*]体现 JMeter 属性:勾选
[*]体现采样器效果:勾选
[*]体现请求数据:勾选
[*]体现响应数据:勾选


[*] 运行测试:

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

 
https://i-blog.csdnimg.cn/direct/23ec73027ac94cbb8746a23f09d2b4e9.png
7--JDBC PostProcessor
功能特点


[*]数据库查询:执行 SQL 查询,获取数据库中的数据。
[*]数据提取:从查询效果中提取特定的数据字段。
[*]动态参数传递:将提取的数据存储为变量,供后续请求利用。
[*]支持多种数据库:支持多种数据库范例,如 MySQL、Oracle、PostgreSQL 等。
设置步骤

[*] 添加 JDBC PostProcessor

[*]右键点击需要添加后处置惩罚器的请求或线程组。
[*]选择“添加” -> “后处置惩罚器” -> “JDBC PostProcessor”。

[*] 设置 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。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加 JDBC 毗连设置:

[*]右键点击测试计划 -> 添加 -> 设置元件 -> JDBC Connection Configuration。
[*]设置 JDBC 毗连设置:

[*]变量名称:jdbcConfig
[*]数据库 URL:jdbc:mysql://localhost:3306/mydatabase
[*]用户名:root
[*]暗码:password
[*]JDBC 驱动类:com.mysql.jdbc.Driver


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:目标服务器的地点(例如example.com)。
[*]端口号:目标服务器的端口(例如80)。
[*]协议:HTTP或HTTPS(例如HTTP)。
[*]方法:POST
[*]路径:请求的路径(例如/login)。
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加 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


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

优化建议

[*] 毗连设置:

[*]确保 JDBC 毗连设置正确无误,能够乐成毗连到数据库。

[*] SQL 查询:

[*]确保 SQL 查询语句正确无误,能够返回预期的数据。可以在数据库管理工具中预先测试查询语句。

[*] 效果集范例:

[*]根据实际需求选择合适的效果集范例。常见的效果集范例有:

[*]Single Value:提取单个值。
[*]Multiple Values:提取多个值。


[*] 效果集变量名称:

[*]设置合适的效果集变量名称,确保变量名称有意义且易于理解,便于在后续请求中引用。

[*] 错误处置惩罚:

[*]在测试计划中添加断言和监听器,确保查询效果的正确性和请求的乐成率。

示例设置详细阐明
假设我们有一个简朴的测试计划,包罗一个线程组和两个HTTP请求,并希望从数据库中提取用户的ID,然后在后续请求中利用该用户ID。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加 JDBC 毗连设置:

[*]右键点击测试计划 -> 添加 -> 设置元件 -> JDBC Connection Configuration。
[*]设置 JDBC 毗连设置:

[*]变量名称:jdbcConfig
[*]数据库 URL:jdbc:mysql://localhost:3306/mydatabase
[*]用户名:root
[*]暗码:password
[*]JDBC 驱动类:com.mysql.jdbc.Driver


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:POST
[*]路径:/login
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加 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


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

 
https://i-blog.csdnimg.cn/direct/6f14da28627d4deda6b76676a98e6e7e.png
8--Debug PostProcessor
功能特点


[*]变量和属性检察:体现所有 JMeter 变量和属性的值。
[*]请求和响应数据检察:体现请求和响应的数据。
[*]调试信息:提供详细的调试信息,帮助诊断问题。
设置步骤

[*] 添加 Debug PostProcessor

[*]右键点击需要添加后处置惩罚器的请求或线程组。
[*]选择“添加” -> “后处置惩罚器” -> “Debug PostProcessor”。

[*] 设置 Debug PostProcessor

[*]名称:给 Debug PostProcessor 一个有意义的名称。
[*]启用:勾选以启用此后处置惩罚器。
[*]体现 JMeter 变量:选择是否体现 JMeter 变量。
[*]体现 JMeter 属性:选择是否体现 JMeter 属性。
[*]体现采样器效果:选择是否体现采样器的效果。
[*]体现请求数据:选择是否体现请求数据。
[*]体现响应数据:选择是否体现响应数据。

参数阐明


[*]名称:给 Debug PostProcessor 一个有意义的名称。
[*]启用:勾选以启用此后处置惩罚器。
[*]体现 JMeter 变量:选择是否体现 JMeter 变量。
[*]体现 JMeter 属性:选择是否体现 JMeter 属性。
[*]体现采样器效果:选择是否体现采样器的效果。
[*]体现请求数据:选择是否体现请求数据。
[*]体现响应数据:选择是否体现响应数据。
示例设置
假设我们需要测试一个Web应用,并在登录请求后利用 Debug PostProcessor 检察提取的用户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


[*] 添加 Debug PostProcessor:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> Debug PostProcessor。
[*]设置 Debug PostProcessor:

[*]名称:调试信息
[*]启用:勾选
[*]体现 JMeter 变量:勾选
[*]体现 JMeter 属性:勾选
[*]体现采样器效果:勾选
[*]体现请求数据:勾选
[*]体现响应数据:勾选


[*] 运行测试:

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

优化建议

[*] 启用和禁用:

[*]在正式测试中,可以禁用 Debug PostProcessor 以减少不须要的开销。

[*] 选择性体现:

[*]根据需要选择体现哪些信息,例如只体现 JMeter 变量或请求数据,以便更快地找到问题。

[*] 效果检察:

[*]利用效果树监听器(View Results Tree)或其他监听器检察 Debug PostProcessor 输出的信息,确保变量和数据按预期设置。

示例设置详细阐明
假设我们有一个简朴的测试计划,包罗一个线程组和一个HTTP请求,并希望在登录请求后利用 Debug PostProcessor 检察提取的用户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


[*] 添加 Debug PostProcessor:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> Debug PostProcessor。
[*]设置 Debug PostProcessor:

[*]名称:调试信息
[*]启用:勾选
[*]体现 JMeter 变量:勾选
[*]体现 JMeter 属性:勾选
[*]体现采样器效果:勾选
[*]体现请求数据:勾选
[*]体现响应数据:勾选


[*] 运行测试:

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

https://i-blog.csdnimg.cn/direct/d643a126b46840188cc7ce3dc2d70624.png
9--XPath2 Extractor
功能特点


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

[*] 添加 XPath2 Extractor

[*]右键点击需要添加后处置惩罚器的请求或线程组。
[*]选择“添加” -> “后处置惩罚器” -> “XPath2 Extractor”。

[*] 设置 XPath2 Extractor

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

参数阐明


[*]名称:给 XPath2 Extractor 一个有意义的名称。
[*]XML 响应:选择从哪个响应中提取数据(例如,上一个采样器的响应)。
[*]XPath2 表达式:输入用于匹配数据的 XPath2 表达式。
[*]命名空间:如果 XML 响应中有命名空间,可以在这里定义。
[*]匹配数字:设置要匹配的次数,例如:

[*]-1:匹配所有。
[*]0:随机匹配一个。
[*]1:匹配第一个。

[*]默认值:设置如果未找到匹配项时的默认值。
[*]变量名称:设置提取的数据存储的变量名,可以在后续请求中引用这个变量。
示例设置
假设我们需要测试一个Web应用,并从登录请求的 XML 响应中提取用户的ID,然后在后续请求中利用该用户ID。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:目标服务器的地点(例如example.com)。
[*]端口号:目标服务器的端口(例如80)。
[*]协议:HTTP或HTTPS(例如HTTP)。
[*]方法:POST
[*]路径:请求的路径(例如/login)。
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加 XPath2 Extractor:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> XPath2 Extractor。
[*]设置 XPath2 Extractor:

[*]名称:提取用户ID
[*]XML 响应:上一个采样器的响应
[*]XPath2 表达式://user/id/text()
[*]命名空间:(如果有命名空间,可以在这里定义)
[*]匹配数字:1(匹配第一个)
[*]默认值:NoUserIDFound
[*]变量名称:user_id


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

优化建议

[*] XPath2 表达式:

[*]确保 XPath2 表达式正确无误,能够准确匹配所需的数据。可以利用在线 XPath 测试工具举行验证。

[*] 命名空间:

[*]如果 XML 响应中有命名空间,确保在 XPath2 Extractor 中正确设置命名空间。

[*] 匹配次数:

[*]根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。

[*] 默认值:

[*]设置公道的默认值,避免因未找到匹配项而导致测试失败。

[*] 变量名称:

[*]确保变量名称有意义且易于理解,便于在后续请求中引用。

[*] 错误处置惩罚:

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

示例设置详细阐明
假设我们有一个简朴的测试计划,包罗一个线程组和两个HTTP请求,并希望从登录请求的 XML 响应中提取用户的ID,然后在后续请求中利用该用户ID。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:POST
[*]路径:/login
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加 XPath2 Extractor:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> XPath2 Extractor。
[*]设置 XPath2 Extractor:

[*]名称:提取用户ID
[*]XML 响应:上一个采样器的响应
[*]XPath2 表达式://user/id/text()
[*]命名空间:(如果有命名空间,可以在这里定义)
[*]匹配数字:1(匹配第一个)
[*]默认值:NoUserIDFound
[*]变量名称:user_id


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

 
https://i-blog.csdnimg.cn/direct/a12b2e907df8439a8b5d6904b9b1b544.png
10--Xpath提取器
 
功能特点


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

[*] 添加 XPath Extractor

[*]右键点击需要添加后处置惩罚器的请求或线程组。
[*]选择“添加” -> “后处置惩罚器” -> “XPath Extractor”。

[*] 设置 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。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:目标服务器的地点(例如example.com)。
[*]端口号:目标服务器的端口(例如80)。
[*]协议:HTTP或HTTPS(例如HTTP)。
[*]方法:POST
[*]路径:请求的路径(例如/login)。
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加 XPath Extractor:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> XPath Extractor。
[*]设置 XPath Extractor:

[*]名称:提取用户ID
[*]XML 响应:上一个采样器的响应
[*]利用 Namespaces:如果 XML 响应中有命名空间,勾选此项。
[*]Namespaces:如果勾选了“利用 Namespaces”,在这里定义命名空间。
[*]XPath 表达式://user/id/text()
[*]匹配数字:1(匹配第一个)
[*]默认值:NoUserIDFound
[*]变量名称:user_id


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

优化建议

[*] XPath 表达式:

[*]确保 XPath 表达式正确无误,能够准确匹配所需的数据。可以利用在线 XPath 测试工具举行验证。

[*] 命名空间:

[*]如果 XML 响应中有命名空间,确保在 XPath Extractor 中正确设置命名空间。

[*] 匹配次数:

[*]根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。

[*] 默认值:

[*]设置公道的默认值,避免因未找到匹配项而导致测试失败。

[*] 变量名称:

[*]确保变量名称有意义且易于理解,便于在后续请求中引用。

[*] 错误处置惩罚:

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

示例设置详细阐明
假设我们有一个简朴的测试计划,包罗一个线程组和两个HTTP请求,并希望从登录请求的 XML 响应中提取用户的ID,然后在后续请求中利用该用户ID。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:POST
[*]路径:/login
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加 XPath Extractor:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> XPath Extractor。
[*]设置 XPath Extractor:

[*]名称:提取用户ID
[*]XML 响应:上一个采样器的响应
[*]利用 Namespaces:如果 XML 响应中有命名空间,勾选此项。
[*]Namespaces:如果勾选了“利用 Namespaces”,在这里定义命名空间。
[*]XPath 表达式://user/id/text()
[*]匹配数字:1(匹配第一个)
[*]默认值:NoUserIDFound
[*]变量名称:user_id


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

https://i-blog.csdnimg.cn/direct/5c82022724f344c59b928431b5cf66c7.png
11--效果状态处置惩罚器
功能特点


[*]条件判定:根据前一个采样器的响应状态(乐成或失败)执行差别的操作。
[*]操作范例:支持多种操作范例,如停止线程、重试请求、继承执行等。
[*]灵活性高:可以根据实际需求灵活设置,满意复杂的测试场景。
设置步骤

[*] 添加效果状态处置惩罚器

[*]右键点击需要添加后处置惩罚器的请求或线程组。
[*]选择“添加” -> “后处置惩罚器” -> “效果状态处置惩罚器”(Result Status Action Handler)。

[*] 设置效果状态处置惩罚器

[*]名称:给效果状态处置惩罚器一个有意义的名称。
[*]失败时的动作:选择失败时的操作范例(例如,停止线程、重试请求、继承执行)。
[*]乐成时的动作:选择乐成时的操作范例(例如,继承执行)。

参数阐明


[*]名称:给效果状态处置惩罚器一个有意义的名称。
[*]失败时的动作:选择失败时的操作范例,例如:

[*]继承:继承执行下一个采样器。
[*]停止线程:停止当前线程。
[*]停止测试:停止整个测试。
[*]重试请求:重试当前请求。

[*]乐成时的动作:选择乐成时的操作范例,通常选择“继承执行”。
示例设置
假设我们需要测试一个Web应用,并在登录请求失败时停止当前线程,而在乐成时继承执行后续请求。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:目标服务器的地点(例如example.com)。
[*]端口号:目标服务器的端口(例如80)。
[*]协议:HTTP或HTTPS(例如HTTP)。
[*]方法:POST
[*]路径:请求的路径(例如/login)。
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加效果状态处置惩罚器:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> 效果状态处置惩罚器。
[*]设置效果状态处置惩罚器:

[*]名称:处置惩罚登录请求效果
[*]失败时的动作:停止线程
[*]乐成时的动作:继承执行


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

优化建议

[*] 操作范例选择:

[*]根据实际需求选择合适的操作范例。例如,如果登录失败,可能需要停止当前线程以避免后续请求的无效执行。

[*] 错误处置惩罚:

[*]在测试计划中添加断言和监听器,确保请求的乐成率和返回数据的正确性。

[*] 日记记录:

[*]利用日记记录功能可以帮助调试和分析测试效果,确保日记文件路径有效且有充足的写权限。

[*] 测试场景:

[*]根据具体的测试场景设置效果状态处置惩罚器,确保测试流程的公道性和准确性。

示例设置详细阐明
假设我们有一个简朴的测试计划,包罗一个线程组和两个HTTP请求,并希望在登录请求失败时停止当前线程,而在乐成时继承执行后续请求。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:POST
[*]路径:/login
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加效果状态处置惩罚器:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> 效果状态处置惩罚器。
[*]设置效果状态处置惩罚器:

[*]名称:处置惩罚登录请求效果
[*]失败时的动作:停止线程
[*]乐成时的动作:继承执行


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

[*]点击工具栏上的“启动”按钮,运行测试。
[*]检察效果树监听器或检察效果文件,确保登录请求的效果按预期处置惩罚,失败时停止线程,乐成时继承执行后续请求。

 
https://i-blog.csdnimg.cn/direct/51286d7c54e546439f2be7e1960b3ca5.png
12--BeanShell PostProcessor
功能特点


[*]脚本编写:利用 BeanShell 脚本语言编写自定义逻辑。
[*]数据处置惩罚:处置惩罚采样器的响应数据,举行数据转换、条件判定等操作。
[*]变量设置:设置和修改 JMeter 变量。
[*]灵活性高:支持复杂的逻辑操作,满意各种测试需求。
设置步骤

[*] 添加 BeanShell PostProcessor

[*]右键点击需要添加后处置惩罚器的请求或线程组。
[*]选择“添加” -> “后处置惩罚器” -> “BeanShell PostProcessor”。

[*] 设置 BeanShell PostProcessor

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

参数阐明


[*]名称:给 BeanShell PostProcessor 一个有意义的名称。
[*]脚本:编写 BeanShell 脚本,实现所需的逻辑操作。
[*]参数:设置脚本中利用的参数(可选)。
[*]文件名:指定一个包罗 BeanShell 脚本的文件(可选)。
示例设置
假设我们需要测试一个Web应用,并在登录请求后利用 BeanShell PostProcessor 处置惩罚响应数据,提取用户的ID并设置为变量,然后在后续请求中利用该用户ID。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:目标服务器的地点(例如example.com)。
[*]端口号:目标服务器的端口(例如80)。
[*]协议:HTTP或HTTPS(例如HTTP)。
[*]方法:POST
[*]路径:请求的路径(例如/login)。
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加 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);


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

优化建议

[*] 脚本编写:

[*]确保 BeanShell 脚本正确无误,能够正确处置惩罚响应数据。可以利用 BeanShell 控制台举行脚本测试。

[*] 导入须要的类:

[*]如果需要利用外部类(如 org.json.JSONObject),确保在脚本中正确导入这些类。

[*] 变量管理:

[*]利用 vars.put 方法设置变量,确保变量名称有意义且易于理解,便于在后续请求中引用。

[*] 错误处置惩罚:

[*]在脚本中添加得当的错误处置惩罚逻辑,避免因数据解析错误导致测试失败。

[*] 性能考虑:

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

示例设置详细阐明
假设我们有一个简朴的测试计划,包罗一个线程组和两个HTTP请求,并希望在登录请求后利用 BeanShell PostProcessor 处置惩罚响应数据,提取用户的ID并设置为变量,然后在后续请求中利用该用户ID。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:POST
[*]路径:/login
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加 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);


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

https://i-blog.csdnimg.cn/direct/ff6ff4fd664245bd9bd30b1db1d0b569.png
13--正则表达式提取器
功能特点


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

[*] 添加正则表达式提取器

[*]右键点击需要添加后处置惩罚器的请求或线程组。
[*]选择“添加” -> “后处置惩罚器” -> “正则表达式提取器”。

[*] 设置正则表达式提取器

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

参数阐明


[*]名称:给正则表达式提取器一个有意义的名称。
[*]实用范围:选择正则表达式提取器作用的范围(例如,主样本或子样本)。
[*]响应字段:选择从响应的哪个部门提取数据(例如,Body、Headers等)。
[*]正则表达式:输入用于匹配数据的正则表达式。
[*]模板:定义怎样从匹配效果中提取数据(默认是 $1$ 体现第一个捕获组)。
[*]匹配数字:设置要匹配的次数,例如:

[*]-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



[*] 添加正则表达式提取器:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> 正则表达式提取器。
[*]设置正则表达式提取器:

[*]名称:提取用户ID
[*]实用范围:主样本
[*]响应字段:Body
[*]正则表达式:"userId":"(.*?)" (假设响应中用户ID的格式是 "userId":"12345")
[*]模板:$1$ (体现第一个捕获组)
[*]匹配数字:1(匹配第一个)
[*]默认值:NoUserIDFound
[*]变量名称:user_id


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

优化建议

[*] 正则表达式:

[*]确保正则表达式正确无误,能够准确匹配所需的数据。可以利用在线正则表达式测试工具举行验证。

[*] 匹配次数:

[*]根据实际需求设置匹配次数。如果只需要第一个匹配项,设置为1;如果需要所有匹配项,设置为-1。

[*] 默认值:

[*]设置公道的默认值,避免因未找到匹配项而导致测试失败。

[*] 变量名称:

[*]确保变量名称有意义且易于理解,便于在后续请求中引用。

[*] 错误处置惩罚:

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

示例设置详细阐明
假设我们有一个简朴的测试计划,包罗一个线程组和两个HTTP请求,并希望从登录请求的响应中提取用户的ID,然后在后续请求中利用该用户ID。

[*] 创建测试计划:

[*]右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。

[*] 添加线程组:

[*]右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
[*]设置线程组:

[*]线程数:1(模拟1个用户)
[*]循环次数:1(每个用户发送1次请求)
[*]启动延迟:0(立刻启动)


[*] 添加登录请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:登录请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:POST
[*]路径:/login
[*]参数:

[*]名称:username
[*]值:testuser
[*]名称:password
[*]值:testpass



[*] 添加正则表达式提取器:

[*]右键点击登录请求 -> 添加 -> 后处置惩罚器 -> 正则表达式提取器。
[*]设置正则表达式提取器:

[*]名称:提取用户ID
[*]实用范围:主样本
[*]响应字段:Body
[*]正则表达式:"userId":"(.*?)" (假设响应中用户ID的格式是 "userId":"12345")
[*]模板:$1$ (体现第一个捕获组)
[*]匹配数字:1(匹配第一个)
[*]默认值:NoUserIDFound
[*]变量名称:user_id


[*] 添加后续请求:

[*]右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
[*]设置HTTP请求:

[*]名称:用户详情请求
[*]服务器名称或IP:example.com
[*]端口号:80
[*]协议:HTTP
[*]方法:GET
[*]路径:/user/${user_id}


[*] 运行测试:

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

 

https://i-blog.csdnimg.cn/direct/3f653f73337e424a953aa24e73f6e48f.png
 
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: Jmeter后置处置惩罚器