Jmeter中的断言(二)
5--XPath2 Assertion
功能特点
- 数据验证:验证 XML 响应数据是否包含或不包含特定的字段或值。
- 支持 XPath2.0:使用 XPath2.0 表达式定位和验证 XML 数据中的字段。
- 灵活配置:可以设置多个断言条件,满足复杂的测试需求。
配置步骤
-
添加 XPath2 断言
- 右键点击需要添加断言的请求或线程组。
- 选择“添加” -> “断言” -> “XPath2 断言”。
-
配置 XPath2 断言
- 名称:给 XPath2 断言一个有意义的名称。
- XML 响应:选择要验证的 XML 响应部分(例如,响应数据)。
- XPath2 表达式:输入用于匹配数据的 XPath2 表达式。
- 验证存在性:选择是否验证节点的存在性。
- 验证值:选择是否验证节点的值。
- 期望值:输入期望的值。
- 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
- 忽略空白:选择是否忽略 XML 文档中的空白字符。
参数说明
- 名称:给 XPath2 断言一个有意义的名称。
- XML 响应:选择要验证的 XML 响应部分,例如:
- 响应数据:验证响应体中的 XML 数据。
- 响应代码:验证HTTP响应代码。
- 响应消息:验证HTTP响应消息。
- 响应头:验证HTTP响应头。
- XPath2 表达式:输入用于匹配数据的 XPath2 表达式。
- 验证存在性:选择是否验证节点的存在性。
- 验证值:选择是否验证节点的值。
- 期望值:输入期望的值。
- 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
- 忽略空白:选择是否忽略 XML 文档中的空白字符。
示例配置
假设我们需要测试一个Web应用,并验证登录请求的 XML 响应数据中是否包含特定的字段和值,例如 userId
字段的值为 12345
。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:POST
- 路径:请求的路径(例如
/login
)。 - 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 XPath2 断言:
- 右键点击登录请求 -> 添加 -> 断言 -> XPath2 断言。
- 配置 XPath2 断言:
- 名称:验证用户ID
- XML 响应:响应数据
- XPath2 表达式:
//userId
- 验证存在性:勾选
- 验证值:勾选
- 期望值:12345
- 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
- 忽略空白:勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据中
userId
字段的值为12345
。
优化建议
-
XPath2 表达式:
- 确保 XPath2 表达式正确无误,能够准确匹配所需的数据。可以使用在线 XPath 测试工具进行验证。
-
验证条件:
- 根据实际需求选择合适的验证条件。例如,如果只需要验证节点的存在性,选择“验证存在性”;如果需要验证节点的值,选择“验证值”。
-
命名空间:
- 如果 XML 响应中包含命名空间,确保在断言配置中正确定义命名空间前缀和 URI。
-
忽略空白:
- 如果 XML 文档中包含大量空白字符,选择“忽略空白”以避免因空白字符导致断言失败。
-
错误处理:
- 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
-
性能考虑:
- 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的 XML 响应数据中 userId
字段的值为 12345
。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:POST
- 路径:/login
- 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 XPath2 断言:
- 右键点击登录请求 -> 添加 -> 断言 -> XPath2 断言。
- 配置 XPath2 断言:
- 名称:验证用户ID
- XML 响应:响应数据
- XPath2 表达式:
//userId
- 验证存在性:勾选
- 验证值:勾选
- 期望值:12345
- 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
- 忽略空白:勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据中
userId
字段的值为12345
。
6--Compare Assertion
功能特点
- 数据比较:比较两个响应数据是否相同或不同。
- 多种比较方式:支持多种比较方式,如完全相同、仅比较大小写、忽略空白等。
- 灵活配置:可以设置多个断言条件,满足复杂的测试需求。
配置步骤
-
添加 Compare Assertion
- 右键点击需要添加断言的请求或线程组。
- 选择“添加” -> “断言” -> “Compare Assertion”。
-
配置 Compare Assertion
- 名称:给 Compare Assertion 一个有意义的名称。
- 比较类型:选择比较类型(例如,完全相同、仅比较大小写、忽略空白等)。
- 比较范围:选择要比较的响应数据部分(例如,响应数据、响应代码、响应消息等)。
- 比较方式:选择比较方式(例如,相同或不同)。
- 第一个采样器:选择第一个要比较的采样器。
- 第二个采样器:选择第二个要比较的采样器。
参数说明
- 名称:给 Compare Assertion 一个有意义的名称。
- 比较类型:选择比较类型,例如:
- 完全相同:两个响应数据必须完全相同。
- 仅比较大小写:仅比较响应数据的大小写。
- 忽略空白:忽略响应数据中的空白字符。
- 忽略换行符:忽略响应数据中的换行符。
- 比较范围:选择要比较的响应数据部分,例如:
- 响应数据:比较响应体中的数据。
- 响应代码:比较HTTP响应代码。
- 响应消息:比较HTTP响应消息。
- 响应头:比较HTTP响应头。
- 比较方式:选择比较方式,例如:
- 相同:两个响应数据必须相同。
- 不同:两个响应数据必须不同。
- 第一个采样器:选择第一个要比较的采样器。
- 第二个采样器:选择第二个要比较的采样器。
示例配置
假设我们需要测试一个Web应用,并验证两个请求的响应数据是否相同。我们将使用 Compare Assertion 来实现这一断言。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加第一个请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求1
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:GET
- 路径:请求的路径(例如
/api/data1
)。
-
添加第二个请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求2
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:GET
- 路径:请求的路径(例如
/api/data2
)。
-
添加 Compare Assertion:
- 右键点击线程组 -> 添加 -> 断言 -> Compare Assertion。
- 配置 Compare Assertion:
- 名称:比较响应数据
- 比较类型:完全相同
- 比较范围:响应数据
- 比较方式:相同
- 第一个采样器:请求1
- 第二个采样器:请求2
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保两个请求的响应数据相同。
优化建议
-
比较类型选择:
- 根据实际需求选择合适的比较类型。例如,如果需要完全相同的响应数据,选择“完全相同”;如果只需要比较大小写,选择“仅比较大小写”。
-
比较范围:
- 根据需要验证的部分选择合适的比较范围。例如,如果只需要比较响应体中的数据,选择“响应数据”。
-
比较方式:
- 根据实际需求选择合适的比较方式。例如,如果需要确保两个响应数据相同,选择“相同”;如果需要确保两个响应数据不同,选择“不同”。
-
错误处理:
- 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
-
性能考虑:
- 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望验证这两个请求的响应数据是否相同。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加第一个请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求1
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/api/data1
-
添加第二个请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:请求2
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:GET
- 路径:/api/data2
-
添加 Compare Assertion:
- 右键点击线程组 -> 添加 -> 断言 -> Compare Assertion。
- 配置 Compare Assertion:
- 名称:比较响应数据
- 比较类型:完全相同
- 比较范围:响应数据
- 比较方式:相同
- 第一个采样器:请求1
- 第二个采样器:请求2
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保两个请求的响应数据相同。
7--HTML 断言
功能特点
- 数据验证:验证 HTML 响应数据是否包含或不包含特定的内容。
- 支持 CSS 选择器:使用 CSS 选择器定位和验证 HTML 数据中的元素。
- 灵活配置:可以设置多个断言条件,满足复杂的测试需求。
配置步骤
-
添加 HTML 断言
- 右键点击需要添加断言的请求或线程组。
- 选择“添加” -> “断言” -> “HTML 断言”。
-
配置 HTML 断言
- 名称:给 HTML 断言一个有意义的名称。
- CSS 选择器:输入用于匹配数据的 CSS 选择器。
- 验证存在性:选择是否验证元素的存在性。
- 验证值:选择是否验证元素的值。
- 期望值:输入期望的值。
- 忽略空白:选择是否忽略 HTML 文档中的空白字符。
参数说明
- 名称:给 HTML 断言一个有意义的名称。
- CSS 选择器:输入用于匹配数据的 CSS 选择器。
- 验证存在性:选择是否验证元素的存在性。
- 验证值:选择是否验证元素的值。
- 期望值:输入期望的值。
- 忽略空白:选择是否忽略 HTML 文档中的空白字符。
示例配置
假设我们需要测试一个Web应用,并验证登录请求的 HTML 响应数据中是否包含特定的元素和值,例如 <div class="user-id">12345</div>
。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:目标服务器的地址(例如
example.com
)。 - 端口号:目标服务器的端口(例如
80
)。 - 协议:HTTP或HTTPS(例如
HTTP
)。 - 方法:POST
- 路径:请求的路径(例如
/login
)。 - 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 HTML 断言:
- 右键点击登录请求 -> 添加 -> 断言 -> HTML 断言。
- 配置 HTML 断言:
- 名称:验证用户ID
- CSS 选择器:
.user-id
- 验证存在性:勾选
- 验证值:勾选
- 期望值:12345
- 忽略空白:勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的 HTML 响应数据中
.user-id
元素的值为12345
。
优化建议
-
CSS 选择器:
- 确保 CSS 选择器正确无误,能够准确匹配所需的数据。可以使用浏览器开发者工具进行验证。
-
验证条件:
- 根据实际需求选择合适的验证条件。例如,如果只需要验证元素的存在性,选择“验证存在性”;如果需要验证元素的值,选择“验证值”。
-
忽略空白:
- 如果 HTML 文档中包含大量空白字符,选择“忽略空白”以避免因空白字符导致断言失败。
-
错误处理:
- 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
-
性能考虑:
- 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的 HTML 响应数据中 .user-id
元素的值为 12345
。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“Web应用性能测试”)。
-
添加线程组:
- 右键点击测试计划 -> 添加 -> 线程组 -> 输入线程组名称(例如“用户模拟”)。
- 配置线程组:
- 线程数:1(模拟1个用户)
- 循环次数:1(每个用户发送1次请求)
- 启动延迟:0(立即启动)
-
添加登录请求:
- 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
- 配置HTTP请求:
- 名称:登录请求
- 服务器名称或IP:example.com
- 端口号:80
- 协议:HTTP
- 方法:POST
- 路径:/login
- 参数:
- 名称:username
- 值:testuser
- 名称:password
- 值:testpass
-
添加 HTML 断言:
- 右键点击登录请求 -> 添加 -> 断言 -> HTML 断言。
- 配置 HTML 断言:
- 名称:验证用户ID
- CSS 选择器:
.user-id
- 验证存在性:勾选
- 验证值:勾选
- 期望值:12345
- 忽略空白:勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的 HTML 响应数据中
.user-id
元素的值为12345
。
8--JSON JMESPath Assertion
功能特点
- 数据验证:验证 JSON 响应数据是否包含或不包含特定的字段或值。
- 支持 JMESPath:使用 JMESPath 表达式定位和验证 JSON 数据中的字段。
- 灵活配置:可以设置多个断言条件,满足复杂的测试需求。
配置步骤
-
添加 JSON JMESPath 断言
- 右键点击需要添加断言的请求或线程组。
- 选择“添加” -> “断言” -> “JSON JMESPath 断言”。
-
配置 JSON JMESPath 断言
- 名称:给 JSON JMESPath 断言一个有意义的名称。
- JMESPath 表达式:输入用于匹配数据的 JMESPath 表达式。
- 期望值:输入期望的值。
- 验证存在性:选择是否验证字段的存在性。
- 验证值:选择是否验证字段的值。
- 忽略空值:选择是否忽略空值。
参数说明
- 名称:给 JSON JMESPath 断言一个有意义的名称。
- JMESPath 表达式:输入用于匹配数据的 JMESPath 表达式。
- 期望值:输入期望的值。
- 验证存在性:选择是否验证字段的存在性。
- 验证值:选择是否验证字段的值。
- 忽略空值:选择是否忽略空值。
示例配置
假设我们需要测试一个Web应用,并验证登录请求的 JSON 响应数据中是否包含特定的字段和值,例如 userId
字段的值为 12345
。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“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
- JMESPath 表达式:
userId
- 期望值:12345
- 验证存在性:勾选
- 验证值:勾选
- 忽略空值:勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的 JSON 响应数据中
userId
字段的值为12345
。
优化建议
-
JMESPath 表达式:
- 确保 JMESPath 表达式正确无误,能够准确匹配所需的数据。可以使用在线 JMESPath 测试工具进行验证。
-
验证条件:
- 根据实际需求选择合适的验证条件。例如,如果只需要验证字段的存在性,选择“验证存在性”;如果需要验证字段的值,选择“验证值”。
-
忽略空值:
- 如果响应数据中可能存在空值,选择“忽略空值”以避免因空值导致断言失败。
-
错误处理:
- 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
-
性能考虑:
- 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。
示例配置详细说明
假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的 JSON 响应数据中 userId
字段的值为 12345
。
-
创建测试计划:
- 右键点击“测试计划” -> 新建 -> 输入测试计划名称(例如“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
- JMESPath 表达式:
userId
- 期望值:12345
- 验证存在性:勾选
- 验证值:勾选
- 忽略空值:勾选
-
运行测试:
- 点击工具栏上的“启动”按钮,运行测试。
- 查看结果树监听器或查看结果文件,确保登录请求的 JSON 响应数据中
userId
字段的值为12345
。
原文地址:https://blog.csdn.net/2301_76862031/article/details/143652308
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!