Jmeter中的断言

news2024/11/27 13:39:38

 7)断言

7c963caba08647b4bed9ceef2ecb826e.png

1--响应断言

功能特点

  • 数据验证:验证响应数据是否包含或不包含特定的字符串、模式或值。
  • 多种匹配类型:支持多种匹配类型,如文本、正则表达式、文档等。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加响应断言

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “响应断言”。
  2. 配置响应断言

    • 名称:给响应断言一个有意义的名称。
    • 适用范围:选择断言作用的范围(例如,响应数据、响应代码、响应消息等)。
    • 匹配模式:选择匹配模式(例如,包含、不包含、匹配、等于)。
    • 模式/模式文件:输入要匹配的字符串或正则表达式,或者选择一个包含模式的文件。
    • 模式匹配规则:选择模式匹配规则(例如,忽略大小写、多行匹配)。

参数说明

  • 名称:给响应断言一个有意义的名称。
  • 适用范围:选择断言作用的范围,例如:
    • 响应数据:验证响应体中的数据。
    • 响应代码:验证HTTP响应代码。
    • 响应消息:验证HTTP响应消息。
    • 响应头:验证HTTP响应头。
  • 匹配模式:选择匹配模式,例如:
    • 包含:响应数据中包含指定的字符串或模式。
    • 不包含:响应数据中不包含指定的字符串或模式。
    • 匹配:响应数据与指定的正则表达式匹配。
    • 等于:响应数据等于指定的字符串。
  • 模式/模式文件:输入要匹配的字符串或正则表达式,或者选择一个包含模式的文件。
  • 模式匹配规则:选择模式匹配规则,例如:
    • 忽略大小写:匹配时不区分大小写。
    • 多行匹配:允许正则表达式中的多行匹配。
    • 点匹配换行符:允许正则表达式中的点(.)匹配换行符。

示例配置

假设我们需要测试一个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. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据包含“登录成功”消息。

优化建议

  1. 匹配模式选择

    • 根据实际需求选择合适的匹配模式。例如,如果需要精确匹配某个值,选择“等于”;如果需要模糊匹配,选择“包含”。
  2. 模式匹配规则

    • 根据响应数据的特点选择合适的模式匹配规则。例如,如果响应数据包含多行文本,选择“多行匹配”。
  3. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  4. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的响应数据是否包含特定的消息“登录成功”。

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> 响应断言。
    • 配置响应断言:
      • 名称:验证登录成功
      • 适用范围:响应数据
      • 匹配模式:包含
      • 模式/模式文件:登录成功
      • 模式匹配规则:忽略大小写
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据包含“登录成功”消息。

c02ca6111c934666a4c3050393551f31.png


2--JSON断言

功能特点

  • 数据验证:验证 JSON 响应数据是否包含或不包含特定的字段或值。
  • 支持 JSONPath:使用 JSONPath 表达式定位和验证 JSON 数据中的字段。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 JSON 断言

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “JSON 断言”。
  2. 配置 JSON 断言

    • 名称:给 JSON 断言一个有意义的名称。
    • JSONPath 表达式:输入用于匹配数据的 JSONPath 表达式。
    • 期望值:输入期望的值。
    • 验证存在性:选择是否验证字段的存在性。
    • 验证值:选择是否验证字段的值。
    • 忽略空值:选择是否忽略空值。

参数说明

  • 名称:给 JSON 断言一个有意义的名称。
  • JSONPath 表达式:输入用于匹配数据的 JSONPath 表达式。
  • 期望值:输入期望的值。
  • 验证存在性:选择是否验证字段的存在性。
  • 验证值:选择是否验证字段的值。
  • 忽略空值:选择是否忽略空值。

示例配置

假设我们需要测试一个Web应用,并验证登录请求的 JSON 响应数据中是否包含特定的字段和值,例如 userId 字段的值为 12345

  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
      • JSONPath 表达式:$.userId
      • 期望值:12345
      • 验证存在性:勾选
      • 验证值:勾选
      • 忽略空值:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 JSON 响应数据中 userId 字段的值为 12345

优化建议

  1. JSONPath 表达式

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

    • 根据实际需求选择合适的验证条件。例如,如果只需要验证字段的存在性,选择“验证存在性”;如果需要验证字段的值,选择“验证值”。
  3. 忽略空值

    • 如果响应数据中可能存在空值,选择“忽略空值”以避免因空值导致断言失败。
  4. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  5. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的 JSON 响应数据中 userId 字段的值为 12345

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> JSON 断言。
    • 配置 JSON 断言:
      • 名称:验证用户ID
      • JSONPath 表达式:$.userId
      • 期望值:12345
      • 验证存在性:勾选
      • 验证值:勾选
      • 忽略空值:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 JSON 响应数据中 userId 字段的值为 12345

 

70a168310d1d4508ad46b4c977f91f9b.png


3--大小断言

功能特点

  • 数据大小验证:验证响应数据的大小是否符合预期。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。
  • 多种比较方式:支持多种比较方式,如等于、大于、小于等。

配置步骤

  1. 添加大小断言

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “大小断言”。
  2. 配置大小断言

    • 名称:给大小断言一个有意义的名称。
    • 适用范围:选择断言作用的范围(例如,响应数据、响应代码、响应消息等)。
    • 比较方式:选择比较方式(例如,等于、大于、小于等)。
    • 期望大小:输入期望的大小值(单位通常是字节)。
    • 忽略空响应:选择是否忽略空响应。

参数说明

  • 名称:给大小断言一个有意义的名称。
  • 适用范围:选择断言作用的范围,例如:
    • 响应数据:验证响应体中的数据大小。
    • 响应代码:验证HTTP响应代码的长度。
    • 响应消息:验证HTTP响应消息的长度。
    • 响应头:验证HTTP响应头的长度。
  • 比较方式:选择比较方式,例如:
    • 等于:响应数据大小等于指定的值。
    • 大于:响应数据大小大于指定的值。
    • 小于:响应数据大小小于指定的值。
    • 大于等于:响应数据大小大于等于指定的值。
    • 小于等于:响应数据大小小于等于指定的值。
  • 期望大小:输入期望的大小值(单位通常是字节)。
  • 忽略空响应:选择是否忽略空响应。

示例配置

假设我们需要测试一个Web应用,并验证登录请求的响应数据大小是否在特定范围内,例如响应数据大小必须大于100字节。

  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. 添加大小断言

    • 右键点击登录请求 -> 添加 -> 断言 -> 大小断言。
    • 配置大小断言:
      • 名称:验证响应数据大小
      • 适用范围:响应数据
      • 比较方式:大于
      • 期望大小:100
      • 忽略空响应:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据大小大于100字节。

优化建议

  1. 比较方式选择

    • 根据实际需求选择合适的比较方式。例如,如果需要确保响应数据大小在一个特定范围内,可以选择“大于”或“小于”。
  2. 期望大小

    • 确保期望大小值合理,符合实际需求。可以通过手动测试获取预期的响应数据大小。
  3. 忽略空响应

    • 如果响应数据中可能存在空值,选择“忽略空响应”以避免因空值导致断言失败。
  4. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  5. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的响应数据大小大于100字节。

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> 大小断言。
    • 配置大小断言:
      • 名称:验证响应数据大小
      • 适用范围:响应数据
      • 比较方式:大于
      • 期望大小:100
      • 忽略空响应:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据大小大于100字节。

 

 

c0636ad70c7e4348b7e4f8fb29cfead0.png


 

4--JSR223 Assertion

功能特点

  • 脚本编写:使用脚本语言编写自定义逻辑。
  • 数据验证:验证响应数据是否符合特定的条件。
  • 支持多种脚本语言:支持 Groovy、JavaScript、Beanshell 等脚本语言。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 JSR223 断言

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

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

参数说明

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

示例配置

假设我们需要测试一个Web应用,并验证登录请求的响应数据中是否包含特定的字段和值,例如 userId 字段的值为 12345。我们将使用 Groovy 脚本来实现这一断言。

  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 断言

    • 右键点击登录请求 -> 添加 -> 断言 -> JSR223 断言。
    • 配置 JSR223 断言:
      • 名称:验证用户ID
      • 脚本语言:Groovy
      • 脚本
        import groovy.json.JsonSlurper
        
        // 获取响应数据
        def response = prev.getResponseDataAsString()
        
        // 解析 JSON 响应数据
        def jsonSlurper = new JsonSlurper()
        def jsonResponse = jsonSlurper.parseText(response)
        
        // 验证 userId 字段是否存在且值为 12345
        if (jsonResponse.userId != '12345') {
            AssertionResult.setFailure(true)
            AssertionResult.setFailureMessage('User ID is not 12345')
        }
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据中 userId 字段的值为 12345

优化建议

  1. 脚本编写

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

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

    • 使用 AssertionResult 对象设置断言结果,确保断言的正确性和可靠性。
  4. 错误处理

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

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

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的响应数据中 userId 字段的值为 12345。我们将使用 Groovy 脚本来实现这一断言。

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> JSR223 断言。
    • 配置 JSR223 断言:
      • 名称:验证用户ID
      • 脚本语言:Groovy
      • 脚本
        import groovy.json.JsonSlurper
        
        // 获取响应数据
        def response = prev.getResponseDataAsString()
        
        // 解析 JSON 响应数据
        def jsonSlurper = new JsonSlurper()
        def jsonResponse = jsonSlurper.parseText(response)
        
        // 验证 userId 字段是否存在且值为 12345
        if (jsonResponse.userId != '12345') {
            AssertionResult.setFailure(true)
            AssertionResult.setFailureMessage('User ID is not 12345')
        }
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据中 userId 字段的值为 12345

 

 

 

38d8960598b146d992cbf9eb5e046459.png


5--XPath2 Assertion

功能特点

  • 数据验证:验证 XML 响应数据是否包含或不包含特定的字段或值。
  • 支持 XPath2.0:使用 XPath2.0 表达式定位和验证 XML 数据中的字段。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 XPath2 断言

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “XPath2 断言”。
  2. 配置 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

  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 断言

    • 右键点击登录请求 -> 添加 -> 断言 -> XPath2 断言。
    • 配置 XPath2 断言:
      • 名称:验证用户ID
      • XML 响应:响应数据
      • XPath2 表达式//userId
      • 验证存在性:勾选
      • 验证值:勾选
      • 期望值:12345
      • 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
      • 忽略空白:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据中 userId 字段的值为 12345

优化建议

  1. XPath2 表达式

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

    • 根据实际需求选择合适的验证条件。例如,如果只需要验证节点的存在性,选择“验证存在性”;如果需要验证节点的值,选择“验证值”。
  3. 命名空间

    • 如果 XML 响应中包含命名空间,确保在断言配置中正确定义命名空间前缀和 URI。
  4. 忽略空白

    • 如果 XML 文档中包含大量空白字符,选择“忽略空白”以避免因空白字符导致断言失败。
  5. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  6. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的 XML 响应数据中 userId 字段的值为 12345

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> XPath2 断言。
    • 配置 XPath2 断言:
      • 名称:验证用户ID
      • XML 响应:响应数据
      • XPath2 表达式//userId
      • 验证存在性:勾选
      • 验证值:勾选
      • 期望值:12345
      • 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
      • 忽略空白:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据中 userId 字段的值为 12345

 

1f6cec0655d645208ccb463c84723457.png


 

6--Compare Assertion

功能特点

  • 数据比较:比较两个响应数据是否相同或不同。
  • 多种比较方式:支持多种比较方式,如完全相同、仅比较大小写、忽略空白等。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 Compare Assertion

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “Compare Assertion”。
  2. 配置 Compare Assertion

    • 名称:给 Compare Assertion 一个有意义的名称。
    • 比较类型:选择比较类型(例如,完全相同、仅比较大小写、忽略空白等)。
    • 比较范围:选择要比较的响应数据部分(例如,响应数据、响应代码、响应消息等)。
    • 比较方式:选择比较方式(例如,相同或不同)。
    • 第一个采样器:选择第一个要比较的采样器。
    • 第二个采样器:选择第二个要比较的采样器。

参数说明

  • 名称:给 Compare Assertion 一个有意义的名称。
  • 比较类型:选择比较类型,例如:
    • 完全相同:两个响应数据必须完全相同。
    • 仅比较大小写:仅比较响应数据的大小写。
    • 忽略空白:忽略响应数据中的空白字符。
    • 忽略换行符:忽略响应数据中的换行符。
  • 比较范围:选择要比较的响应数据部分,例如:
    • 响应数据:比较响应体中的数据。
    • 响应代码:比较HTTP响应代码。
    • 响应消息:比较HTTP响应消息。
    • 响应头:比较HTTP响应头。
  • 比较方式:选择比较方式,例如:
    • 相同:两个响应数据必须相同。
    • 不同:两个响应数据必须不同。
  • 第一个采样器:选择第一个要比较的采样器。
  • 第二个采样器:选择第二个要比较的采样器。

示例配置

假设我们需要测试一个Web应用,并验证两个请求的响应数据是否相同。我们将使用 Compare Assertion 来实现这一断言。

  1. 创建测试计划

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

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

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

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

    • 右键点击线程组 -> 添加 -> 断言 -> Compare Assertion。
    • 配置 Compare Assertion:
      • 名称:比较响应数据
      • 比较类型:完全相同
      • 比较范围:响应数据
      • 比较方式:相同
      • 第一个采样器:请求1
      • 第二个采样器:请求2
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保两个请求的响应数据相同。

优化建议

  1. 比较类型选择

    • 根据实际需求选择合适的比较类型。例如,如果需要完全相同的响应数据,选择“完全相同”;如果只需要比较大小写,选择“仅比较大小写”。
  2. 比较范围

    • 根据需要验证的部分选择合适的比较范围。例如,如果只需要比较响应体中的数据,选择“响应数据”。
  3. 比较方式

    • 根据实际需求选择合适的比较方式。例如,如果需要确保两个响应数据相同,选择“相同”;如果需要确保两个响应数据不同,选择“不同”。
  4. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  5. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和两个HTTP请求,并希望验证这两个请求的响应数据是否相同。

  1. 创建测试计划

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

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

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

    • 右键点击线程组 -> 添加 -> 取样器 -> HTTP请求。
    • 配置HTTP请求:
      • 名称:请求2
      • 服务器名称或IP:example.com
      • 端口号:80
      • 协议:HTTP
      • 方法:GET
      • 路径:/api/data2
  5. 添加 Compare Assertion

    • 右键点击线程组 -> 添加 -> 断言 -> Compare Assertion。
    • 配置 Compare Assertion:
      • 名称:比较响应数据
      • 比较类型:完全相同
      • 比较范围:响应数据
      • 比较方式:相同
      • 第一个采样器:请求1
      • 第二个采样器:请求2
  6. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保两个请求的响应数据相同。

 

 

8a75e067551d48ee8f29caddbfb93e95.png


 

7--HTML 断言

功能特点

  • 数据验证:验证 HTML 响应数据是否包含或不包含特定的内容。
  • 支持 CSS 选择器:使用 CSS 选择器定位和验证 HTML 数据中的元素。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 HTML 断言

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “HTML 断言”。
  2. 配置 HTML 断言

    • 名称:给 HTML 断言一个有意义的名称。
    • CSS 选择器:输入用于匹配数据的 CSS 选择器。
    • 验证存在性:选择是否验证元素的存在性。
    • 验证值:选择是否验证元素的值。
    • 期望值:输入期望的值。
    • 忽略空白:选择是否忽略 HTML 文档中的空白字符。

参数说明

  • 名称:给 HTML 断言一个有意义的名称。
  • CSS 选择器:输入用于匹配数据的 CSS 选择器。
  • 验证存在性:选择是否验证元素的存在性。
  • 验证值:选择是否验证元素的值。
  • 期望值:输入期望的值。
  • 忽略空白:选择是否忽略 HTML 文档中的空白字符。

示例配置

假设我们需要测试一个Web应用,并验证登录请求的 HTML 响应数据中是否包含特定的元素和值,例如 <div class="user-id">12345</div>

  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. 添加 HTML 断言

    • 右键点击登录请求 -> 添加 -> 断言 -> HTML 断言。
    • 配置 HTML 断言:
      • 名称:验证用户ID
      • CSS 选择器.user-id
      • 验证存在性:勾选
      • 验证值:勾选
      • 期望值:12345
      • 忽略空白:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 HTML 响应数据中 .user-id 元素的值为 12345

优化建议

  1. CSS 选择器

    • 确保 CSS 选择器正确无误,能够准确匹配所需的数据。可以使用浏览器开发者工具进行验证。
  2. 验证条件

    • 根据实际需求选择合适的验证条件。例如,如果只需要验证元素的存在性,选择“验证存在性”;如果需要验证元素的值,选择“验证值”。
  3. 忽略空白

    • 如果 HTML 文档中包含大量空白字符,选择“忽略空白”以避免因空白字符导致断言失败。
  4. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  5. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的 HTML 响应数据中 .user-id 元素的值为 12345

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> HTML 断言。
    • 配置 HTML 断言:
      • 名称:验证用户ID
      • CSS 选择器.user-id
      • 验证存在性:勾选
      • 验证值:勾选
      • 期望值:12345
      • 忽略空白:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 HTML 响应数据中 .user-id 元素的值为 12345

 

fb581a77ec5d4b718345cdf9931d8df2.png


 

8--JSON JMESPath Assertion

 

功能特点

  • 数据验证:验证 JSON 响应数据是否包含或不包含特定的字段或值。
  • 支持 JMESPath:使用 JMESPath 表达式定位和验证 JSON 数据中的字段。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 JSON JMESPath 断言

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “JSON JMESPath 断言”。
  2. 配置 JSON JMESPath 断言

    • 名称:给 JSON JMESPath 断言一个有意义的名称。
    • JMESPath 表达式:输入用于匹配数据的 JMESPath 表达式。
    • 期望值:输入期望的值。
    • 验证存在性:选择是否验证字段的存在性。
    • 验证值:选择是否验证字段的值。
    • 忽略空值:选择是否忽略空值。

参数说明

  • 名称:给 JSON JMESPath 断言一个有意义的名称。
  • JMESPath 表达式:输入用于匹配数据的 JMESPath 表达式。
  • 期望值:输入期望的值。
  • 验证存在性:选择是否验证字段的存在性。
  • 验证值:选择是否验证字段的值。
  • 忽略空值:选择是否忽略空值。

示例配置

假设我们需要测试一个Web应用,并验证登录请求的 JSON 响应数据中是否包含特定的字段和值,例如 userId 字段的值为 12345

  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
      • JMESPath 表达式userId
      • 期望值:12345
      • 验证存在性:勾选
      • 验证值:勾选
      • 忽略空值:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 JSON 响应数据中 userId 字段的值为 12345

优化建议

  1. JMESPath 表达式

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

    • 根据实际需求选择合适的验证条件。例如,如果只需要验证字段的存在性,选择“验证存在性”;如果需要验证字段的值,选择“验证值”。
  3. 忽略空值

    • 如果响应数据中可能存在空值,选择“忽略空值”以避免因空值导致断言失败。
  4. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  5. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的 JSON 响应数据中 userId 字段的值为 12345

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> JSON JMESPath 断言。
    • 配置 JSON JMESPath 断言:
      • 名称:验证用户ID
      • JMESPath 表达式userId
      • 期望值:12345
      • 验证存在性:勾选
      • 验证值:勾选
      • 忽略空值:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 JSON 响应数据中 userId 字段的值为 12345

 

00f11da112c44f3ab8ba920499387867.png


 

9--MD5Hex断言

功能特点

  • 数据完整性验证:验证响应数据的 MD5 哈希值是否符合预期。
  • 简单配置:只需提供预期的 MD5 哈希值即可。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 MD5Hex 断言

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “MD5Hex 断言”。
  2. 配置 MD5Hex 断言

    • 名称:给 MD5Hex 断言一个有意义的名称。
    • 预期的 MD5 哈希值:输入预期的 MD5 哈希值。
    • 忽略空响应:选择是否忽略空响应。

参数说明

  • 名称:给 MD5Hex 断言一个有意义的名称。
  • 预期的 MD5 哈希值:输入预期的 MD5 哈希值。
  • 忽略空响应:选择是否忽略空响应。

示例配置

假设我们需要测试一个Web应用,并验证登录请求的响应数据的 MD5 哈希值是否符合预期,例如预期的 MD5 哈希值为 d41d8cd98f00b204e9800998ecf8427e

  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. 添加 MD5Hex 断言

    • 右键点击登录请求 -> 添加 -> 断言 -> MD5Hex 断言。
    • 配置 MD5Hex 断言:
      • 名称:验证响应数据的 MD5 哈希值
      • 预期的 MD5 哈希值:d41d8cd98f00b204e9800998ecf8427e
      • 忽略空响应:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据的 MD5 哈希值为 d41d8cd98f00b204e9800998ecf8427e

优化建议

  1. 预期的 MD5 哈希值

    • 确保提供的 MD5 哈希值正确无误。可以使用在线 MD5 哈希生成工具生成正确的哈希值。
  2. 忽略空响应

    • 如果响应数据中可能存在空值,选择“忽略空响应”以避免因空值导致断言失败。
  3. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  4. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的响应数据的 MD5 哈希值为 d41d8cd98f00b204e9800998ecf8427e

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> MD5Hex 断言。
    • 配置 MD5Hex 断言:
      • 名称:验证响应数据的 MD5 哈希值
      • 预期的 MD5 哈希值:d41d8cd98f00b204e9800998ecf8427e
      • 忽略空响应:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据的 MD5 哈希值为 d41d8cd98f00b204e9800998ecf8427e

 

8d38534f9b0a4a3db583ec789de18efc.png


 

10--SMIME断言

 

功能特点

  • 数据验证:验证响应数据是否符合 S/MIME 标准。
  • 支持加密和签名:验证响应数据是否已加密或签名。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 SMIME 断言

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “SMIME 断言”。
  2. 配置 SMIME 断言

    • 名称:给 SMIME 断言一个有意义的名称。
    • 验证类型:选择验证类型(例如,验证签名、验证加密)。
    • 证书文件:选择用于验证签名的证书文件。
    • 私钥文件:选择用于解密的私钥文件。
    • 私钥密码:输入私钥文件的密码(如果需要)。
    • 忽略空响应:选择是否忽略空响应。

参数说明

  • 名称:给 SMIME 断言一个有意义的名称。
  • 验证类型:选择验证类型,例如:
    • 验证签名:验证响应数据是否已签名。
    • 验证加密:验证响应数据是否已加密。
  • 证书文件:选择用于验证签名的证书文件。
  • 私钥文件:选择用于解密的私钥文件。
  • 私钥密码:输入私钥文件的密码(如果需要)。
  • 忽略空响应:选择是否忽略空响应。

示例配置

假设我们需要测试一个Web应用,并验证登录请求的响应数据是否已签名且符合 S/MIME 标准。

  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. 添加 SMIME 断言

    • 右键点击登录请求 -> 添加 -> 断言 -> SMIME 断言。
    • 配置 SMIME 断言:
      • 名称:验证响应数据的 S/MIME 签名
      • 验证类型:验证签名
      • 证书文件:选择用于验证签名的证书文件(例如certificate.pem
      • 私钥文件:选择用于解密的私钥文件(如果需要)(例如private.key
      • 私钥密码:输入私钥文件的密码(如果需要)
      • 忽略空响应:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据已签名且符合 S/MIME 标准。

优化建议

  1. 证书文件

    • 确保证书文件正确无误,并且证书文件路径正确。可以使用文件浏览器检查文件路径。
  2. 私钥文件

    • 确保私钥文件正确无误,并且私钥文件路径正确。如果私钥文件有密码,确保密码输入正确。
  3. 忽略空响应

    • 如果响应数据中可能存在空值,选择“忽略空响应”以避免因空值导致断言失败。
  4. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  5. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的响应数据已签名且符合 S/MIME 标准。

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> SMIME 断言。
    • 配置 SMIME 断言:
      • 名称:验证响应数据的 S/MIME 签名
      • 验证类型:验证签名
      • 证书文件:选择用于验证签名的证书文件(例如certificate.pem
      • 私钥文件:选择用于解密的私钥文件(如果需要)(例如private.key
      • 私钥密码:输入私钥文件的密码(如果需要)
      • 忽略空响应:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据已签名且符合 S/MIME 标准。

e0751b5719ef4fe1846632f6dbfebf79.png


 

11--XML Schema断言

功能特点

  • 数据验证:验证 XML 响应数据是否符合特定的 XML Schema 定义。
  • 支持 XSD 文件:使用 XSD 文件定义 XML 数据的结构和约束。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 XML Schema 断言

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “XML Schema 断言”。
  2. 配置 XML Schema 断言

    • 名称:给 XML Schema 断言一个有意义的名称。
    • XML 响应:选择要验证的 XML 响应部分(例如,响应数据)。
    • XSD 文件:选择用于验证的 XSD 文件。
    • 忽略空白:选择是否忽略 XML 文档中的空白字符。

参数说明

  • 名称:给 XML Schema 断言一个有意义的名称。
  • XML 响应:选择要验证的 XML 响应部分,例如:
    • 响应数据:验证响应体中的 XML 数据。
    • 响应代码:验证HTTP响应代码。
    • 响应消息:验证HTTP响应消息。
    • 响应头:验证HTTP响应头。
  • XSD 文件:选择用于验证的 XSD 文件。
  • 忽略空白:选择是否忽略 XML 文档中的空白字符。

示例配置

假设我们需要测试一个Web应用,并验证登录请求的 XML 响应数据是否符合特定的 XSD 定义。

  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. 添加 XML Schema 断言

    • 右键点击登录请求 -> 添加 -> 断言 -> XML Schema 断言。
    • 配置 XML Schema 断言:
      • 名称:验证 XML 响应数据
      • XML 响应:响应数据
      • XSD 文件:选择用于验证的 XSD 文件(例如schema.xsd
      • 忽略空白:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据符合 XSD 定义。

优化建议

  1. XSD 文件

    • 确保 XSD 文件正确无误,并且文件路径正确。可以使用文件浏览器检查文件路径。
    • 使用 XML 验证工具(如在线 XML 验证工具)验证 XSD 文件的正确性。
  2. 忽略空白

    • 如果 XML 文档中包含大量空白字符,选择“忽略空白”以避免因空白字符导致断言失败。
  3. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  4. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的 XML 响应数据符合特定的 XSD 定义。

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> XML Schema 断言。
    • 配置 XML Schema 断言:
      • 名称:验证 XML 响应数据
      • XML 响应:响应数据
      • XSD 文件:选择用于验证的 XSD 文件(例如schema.xsd
      • 忽略空白:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据符合 XSD 定义。

 

de11dff4ba7345ed99bd3396673a8aec.png


 

12--XML断言

功能特点

  • 数据验证:验证 XML 响应数据是否是有效的 XML。
  • 支持 DTD 和 Schema:可以使用 DTD 或 Schema 进一步验证 XML 数据的结构。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 XML 断言

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “XML 断言”。
  2. 配置 XML 断言

    • 名称:给 XML 断言一个有意义的名称。
    • 验证类型:选择验证类型(例如,验证是否为有效的 XML、验证是否符合 DTD、验证是否符合 Schema)。
    • DTD 文件:选择用于验证的 DTD 文件(如果需要)。
    • Schema 文件:选择用于验证的 Schema 文件(如果需要)。
    • 忽略空白:选择是否忽略 XML 文档中的空白字符。

参数说明

  • 名称:给 XML 断言一个有意义的名称。
  • 验证类型:选择验证类型,例如:
    • 验证是否为有效的 XML:验证响应数据是否是有效的 XML。
    • 验证是否符合 DTD:验证响应数据是否符合特定的 DTD 定义。
    • 验证是否符合 Schema:验证响应数据是否符合特定的 Schema 定义。
  • DTD 文件:选择用于验证的 DTD 文件(如果需要)。
  • Schema 文件:选择用于验证的 Schema 文件(如果需要)。
  • 忽略空白:选择是否忽略 XML 文档中的空白字符。

示例配置

假设我们需要测试一个Web应用,并验证登录请求的 XML 响应数据是否是有效的 XML,并且符合特定的 Schema 定义。

  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. 添加 XML 断言

    • 右键点击登录请求 -> 添加 -> 断言 -> XML 断言。
    • 配置 XML 断言:
      • 名称:验证 XML 响应数据
      • 验证类型:验证是否为有效的 XML
      • Schema 文件:选择用于验证的 Schema 文件(例如schema.xsd
      • 忽略空白:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据是有效的 XML 并且符合 Schema 定义。

优化建议

  1. 验证类型选择

    • 根据实际需求选择合适的验证类型。例如,如果只需要验证是否为有效的 XML,选择“验证是否为有效的 XML”;如果需要验证是否符合特定的 Schema,选择“验证是否符合 Schema”。
  2. DTD 或 Schema 文件

    • 确保 DTD 或 Schema 文件正确无误,并且文件路径正确。可以使用文件浏览器检查文件路径。
    • 使用 XML 验证工具(如在线 XML 验证工具)验证 DTD 或 Schema 文件的正确性。
  3. 忽略空白

    • 如果 XML 文档中包含大量空白字符,选择“忽略空白”以避免因空白字符导致断言失败。
  4. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  5. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的 XML 响应数据是有效的 XML 并且符合特定的 Schema 定义。

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> XML 断言。
    • 配置 XML 断言:
      • 名称:验证 XML 响应数据
      • 验证类型:验证是否为有效的 XML
      • Schema 文件:选择用于验证的 Schema 文件(例如schema.xsd
      • 忽略空白:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据是有效的 XML 并且符合 Schema 定义。

2985693b8878459591c672babe302ae8.png


 

13--XPath断言

功能特点

  • 数据验证:验证 XML 响应数据是否包含或不包含特定的字段或值。
  • 支持 XPath 表达式:使用 XPath 表达式定位和验证 XML 数据中的字段。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 XPath 断言

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

    • 名称:给 XPath 断言一个有意义的名称。
    • XML 响应:选择要验证的 XML 响应部分(例如,响应数据)。
    • XPath 表达式:输入用于匹配数据的 XPath 表达式。
    • 验证存在性:选择是否验证节点的存在性。
    • 验证值:选择是否验证节点的值。
    • 期望值:输入期望的值。
    • 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
    • 忽略空白:选择是否忽略 XML 文档中的空白字符。

参数说明

  • 名称:给 XPath 断言一个有意义的名称。
  • XML 响应:选择要验证的 XML 响应部分,例如:
    • 响应数据:验证响应体中的 XML 数据。
    • 响应代码:验证HTTP响应代码。
    • 响应消息:验证HTTP响应消息。
    • 响应头:验证HTTP响应头。
  • XPath 表达式:输入用于匹配数据的 XPath 表达式。
  • 验证存在性:选择是否验证节点的存在性。
  • 验证值:选择是否验证节点的值。
  • 期望值:输入期望的值。
  • 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
  • 忽略空白:选择是否忽略 XML 文档中的空白字符。

示例配置

假设我们需要测试一个Web应用,并验证登录请求的 XML 响应数据中是否包含特定的字段和值,例如 userId 字段的值为 12345

  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 断言

    • 右键点击登录请求 -> 添加 -> 断言 -> XPath 断言。
    • 配置 XPath 断言:
      • 名称:验证用户ID
      • XML 响应:响应数据
      • XPath 表达式//userId
      • 验证存在性:勾选
      • 验证值:勾选
      • 期望值:12345
      • 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
      • 忽略空白:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据中 userId 字段的值为 12345

优化建议

  1. XPath 表达式

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

    • 根据实际需求选择合适的验证条件。例如,如果只需要验证节点的存在性,选择“验证存在性”;如果需要验证节点的值,选择“验证值”。
  3. 命名空间

    • 如果 XML 响应中包含命名空间,确保在断言配置中正确定义命名空间前缀和 URI。
  4. 忽略空白

    • 如果 XML 文档中包含大量空白字符,选择“忽略空白”以避免因空白字符导致断言失败。
  5. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  6. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的 XML 响应数据中 userId 字段的值为 12345

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> XPath 断言。
    • 配置 XPath 断言:
      • 名称:验证用户ID
      • XML 响应:响应数据
      • XPath 表达式//userId
      • 验证存在性:勾选
      • 验证值:勾选
      • 期望值:12345
      • 命名空间:如果 XML 响应中包含命名空间,可以在这里定义命名空间前缀和 URI。
      • 忽略空白:勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的 XML 响应数据中 userId 字段的值为 12345

 

017bc5b6f1244a0ea0142e688c94be05.png


 

14--断言持续时间

功能特点

  • 性能验证:验证请求的响应时间是否在指定的时间范围内。
  • 灵活配置:可以设置多个断言条件,满足复杂的测试需求。

配置步骤

  1. 添加 Duration Assertion

    • 右键点击需要添加断言的请求或线程组。
    • 选择“添加” -> “断言” -> “Duration Assertion”。
  2. 配置 Duration Assertion

    • 名称:给 Duration Assertion 一个有意义的名称。
    • 最大持续时间(毫秒):输入请求的最大允许响应时间(毫秒)。
    • 失败时停止:选择是否在断言失败时停止测试。

参数说明

  • 名称:给 Duration Assertion 一个有意义的名称。
  • 最大持续时间(毫秒):输入请求的最大允许响应时间(毫秒)。如果响应时间超过这个值,断言将失败。
  • 失败时停止:选择是否在断言失败时停止测试。如果勾选,当断言失败时,JMeter 将停止执行后续的请求。

示例配置

假设我们需要测试一个Web应用,并验证登录请求的响应时间是否不超过 500 毫秒。

  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. 添加 Duration Assertion

    • 右键点击登录请求 -> 添加 -> 断言 -> Duration Assertion。
    • 配置 Duration Assertion:
      • 名称:验证响应时间
      • 最大持续时间(毫秒):500
      • 失败时停止:根据需要选择是否勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应时间不超过 500 毫秒。

优化建议

  1. 最大持续时间

    • 根据实际需求设置合理的最大持续时间。例如,如果期望所有请求的响应时间都在 500 毫秒以内,设置最大持续时间为 500 毫秒。
  2. 失败时停止

    • 如果希望在断言失败时停止测试,选择“失败时停止”。这有助于快速发现性能问题并停止不必要的后续请求。
  3. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。
  4. 性能考虑

    • 如果测试中包含大量的请求,确保断言配置高效且简洁,避免影响测试性能。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的响应时间不超过 500 毫秒。

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> Duration Assertion。
    • 配置 Duration Assertion:
      • 名称:验证响应时间
      • 最大持续时间(毫秒):500
      • 失败时停止:根据需要选择是否勾选
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应时间不超过 500 毫秒。

 

73759761f9e44ff1af8ed8fe5d88a689.png


 

15--BeanShell断言

功能特点

  • 自定义验证逻辑:使用 BeanShell 脚本语言编写自定义的断言逻辑。
  • 灵活性高:可以访问 JMeter 变量、属性和响应数据,实现复杂的验证。
  • 调试方便:可以在脚本中添加调试信息,帮助定位问题。

配置步骤

  1. 添加 BeanShell 断言

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

    • 名称:给 BeanShell 断言一个有意义的名称。
    • 脚本:编写 BeanShell 脚本,实现自定义的断言逻辑。
    • 参数:输入脚本所需的参数(可选)。
    • 文件:选择包含脚本的文件(可选)。

参数说明

  • 名称:给 BeanShell 断言一个有意义的名称。
  • 脚本:编写 BeanShell 脚本,实现自定义的断言逻辑。
  • 参数:输入脚本所需的参数(可选)。
  • 文件:选择包含脚本的文件(可选)。

示例配置

假设我们需要测试一个Web应用,并验证登录请求的响应数据中是否包含特定的字段和值,例如 userId 字段的值为 12345

  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 断言

    • 右键点击登录请求 -> 添加 -> 断言 -> BeanShell 断言。
    • 配置 BeanShell 断言:
      • 名称:验证用户ID
      • 脚本
        import org.apache.jmeter.samplers.SampleResult;
        import org.apache.jmeter.assertions.AssertionResult;
        
        SampleResult res = prev;
        String response = res.getResponseDataAsString();
        
        // 检查响应数据中是否包含 userId 为 12345 的字段
        if (response.contains("<userId>12345</userId>")) {
            AssertionResult.setFailure(false);
            AssertionResult.setFailureMessage("Response contains the expected userId.");
        } else {
            AssertionResult.setFailure(true);
            AssertionResult.setFailureMessage("Response does not contain the expected userId.");
        }
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据中 userId 字段的值为 12345

优化建议

  1. 脚本编写

    • 确保 BeanShell 脚本正确无误,能够准确实现所需的验证逻辑。可以使用 BeanShell 解释器进行测试。
    • 使用 JMeter 提供的 API 和变量,例如 prev 对象来访问上一个请求的结果。
  2. 调试信息

    • 在脚本中添加调试信息,帮助定位问题。例如,使用 log.info("Debug message: " + variable); 记录调试信息。
  3. 性能考虑

    • 如果测试中包含大量的请求,确保脚本高效且简洁,避免影响测试性能。
  4. 错误处理

    • 在测试计划中添加监听器(如“查看结果树”或“聚合报告”),确保断言的正确性和请求的成功率。

示例配置详细说明

假设我们有一个简单的测试计划,包含一个线程组和一个HTTP请求,并希望验证登录请求的响应数据中 userId 字段的值为 12345

  1. 创建测试计划

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

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

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

    • 右键点击登录请求 -> 添加 -> 断言 -> BeanShell 断言。
    • 配置 BeanShell 断言:
      • 名称:验证用户ID
      • 脚本
        import org.apache.jmeter.samplers.SampleResult;
        import org.apache.jmeter.assertions.AssertionResult;
        
        SampleResult res = prev;
        String response = res.getResponseDataAsString();
        
        // 检查响应数据中是否包含 userId 为 12345 的字段
        if (response.contains("<userId>12345</userId>")) {
            AssertionResult.setFailure(false);
            AssertionResult.setFailureMessage("Response contains the expected userId.");
        } else {
            AssertionResult.setFailure(true);
            AssertionResult.setFailureMessage("Response does not contain the expected userId.");
        }
  5. 运行测试

    • 点击工具栏上的“启动”按钮,运行测试。
    • 查看结果树监听器或查看结果文件,确保登录请求的响应数据中 userId 字段的值为 12345

6dc81ac17c6a4e6e90d48f5d32050ca6.png


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2248442.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot实战(19)(条件分页查询、PageHelper、MYBATIS动态SQL、mapper映射配置文件、自定义类封装分页查询数据集)

引言&#xff1a; 该类博客的学习是基于b站黑马视频springbootvue视频学习&#xff01;具体围绕项目——"大事件"进行实战学习。 目录 一、功能介绍&#xff08;需求&#xff09;。 1、文章列表功能基本介绍。 2、条件分页查询功能与注意。 3、前端页面效果。&#x…

goframe框架bug-记录

implement not found for interface ICompany, forgot register? 错误解决检查&#xff1a; 1.有没有init 2. 注入问题 3. 注入问题

零基础学安全--云技术基础

目录 学习连接 前言 云技术历史 云服务 公有云服务商 云分类 基础设施即服务&#xff08;IaaS&#xff09; 平台即服务&#xff08;PaaS&#xff09; 软件即服务&#xff08;SaaS&#xff09; 云架构 虚拟化 容器 云架构设计 组件选择 基础设施即代码 集成部署…

数据结构 (11)串的基本概念

一、串的定义 1.串是由一个或者多个字符组成的有限序列&#xff0c;一般记为&#xff1a;sa1a2…an&#xff08;n≥0&#xff09;。其中&#xff0c;s是串的名称&#xff0c;用单括号括起来的字符序列是串的值&#xff1b;ai&#xff08;1≤i≤n&#xff09;可以是字母、数字或…

【Java】二叉树:数据海洋中灯塔式结构探秘(上)

个人主页 &#x1f339;&#xff1a;喜欢做梦 二叉树中有一个树&#xff0c;我们可以猜到他和树有关&#xff0c;那我们先了解一下什么是树&#xff0c;在来了解一下二叉树 一&#x1f35d;、树型结构 1&#x1f368;.什么是树型结构&#xff1f; 树是一种非线性的数据结构&…

在 macOS 上安装 MongoDB Community Edition

https://www.mongodb.com/zh-cn/docs/manual/tutorial/install-mongodb-on-os-x/

docker部署单机版doris

文章目录 前言一、系统环境简介二、部署要求三、部署安装1、基础设置2、下载镜像3、下载安装包4、启动镜像环境5、配置fe6、配置be 总结 前言 应项目测试需求&#xff0c;需使用docker部署单机版doris。 一、系统环境简介 #1 系统信息 [roottest][~] $cat /etc/redhat-relea…

c++编程玩转物联网:使用芯片控制8个LED实现流水灯技术分享

在嵌入式系统中&#xff0c;有限的GPIO引脚往往限制了硬件扩展能力。74HC595N芯片是一种常用的移位寄存器&#xff0c;通过串行输入和并行输出扩展GPIO数量。本项目利用树莓派Pico开发板与74HC595N芯片&#xff0c;驱动8个LED实现流水灯效果。本文详细解析项目硬件连接、代码实…

uni-app运行 安卓模拟器 MuMu模拟器

最近公司开发移动端系统&#xff0c;使用真机时每次调试的时候换来换去的麻烦&#xff0c;所以使用模拟器来调试方便。记录一下安装和连接的过程 一、安装MuMu模拟器 百度搜索MuMu模拟器并打开官网或者点这里MuMu模拟器官网 点击下载模拟器 安装模拟器&#xff0c;如果系统…

C语言解析命令行参数

原文地址&#xff1a;C语言解析命令行参数 – 无敌牛 欢迎参观我的个人博客&#xff1a;无敌牛 – 技术/著作/典籍/分享等 C语言有一个 getopt 函数&#xff0c;可以对命令行进行解析&#xff0c;下面给出一个示例&#xff0c;用的时候可以直接copy过去修改&#xff0c;很方便…

传奇996_36——背包图标,物品位置问题

绑定位置不对位 CTRLF9背包物品文件&#xff0c;也就是bag_item文件夹的bag_item.lua文件&#xff0c;这个小框和大框的相对位置会影响那个绑定图标,就是背包物品组合的标签和下面子标签的相对位置 背包物品偏移到看不见 原因&#xff1a;CTRLF9背包物品文件&#xff0c;也就…

使用Python和Pybind11调用C++程序(CMake编译)

目录 一、前言二、安装 pybind11三、编写C示例代码四、结合Pybind11和CMake编译C工程五、Python调用动态库六、参考 一、前言 跨语言调用能对不同计算机语言进行互补&#xff0c;本博客主要介绍如何实现Python调用C语言编写的函数。 实验环境&#xff1a; Linux gnuPython3.10…

如何选择黑白相机和彩色相机

我们在选择成像解决方案时黑白相机很容易被忽略&#xff0c;因为许多新相机提供鲜艳的颜色&#xff0c;鲜明的对比度和改进的弱光性能。然而&#xff0c;有许多应用&#xff0c;选择黑白相机将是更好的选择&#xff0c;因为他们产生更清晰的图像&#xff0c;更好的分辨率&#…

代码美学:MATLAB制作渐变色

输入颜色个数n&#xff0c;颜色类型&#xff1a; n 2; % 输入颜色个数 colors {[1, 0, 0], [0, 0, 1]}; createGradientHeatmap(n, colors); 调用函数&#xff1a; function createGradientHeatmap(n, colors)% 输入检查if length(colors) ~ nerror(输入的颜色数量与n不一…

SAP 零售方案 CAR 系统的介绍与研究

前言 当今时代&#xff0c;零售业务是充满活力和活力的业务领域之一。每天&#xff0c;由于销售运营和客户行为&#xff0c;它都会生成大量数据。因此&#xff0c;公司迫切需要管理数据并从中检索见解。它将帮助公司朝着正确的方向发展他们的业务。 这就是为什么公司用来处理…

【leetcode】动态规划

31. 873. 最长的斐波那契子序列的长度 题目&#xff1a; 如果序列 X_1, X_2, ..., X_n 满足下列条件&#xff0c;就说它是 斐波那契式 的&#xff1a; n > 3对于所有 i 2 < n&#xff0c;都有 X_i X_{i1} X_{i2} 给定一个严格递增的正整数数组形成序列 arr &#xff0…

自动泊车“哐哐撞大墙”,小米SU7智驾功能bug缠身?

文/王俣祺 导语&#xff1a;小米SU7&#xff0c;自带热度与科技光环的“流量神车”&#xff0c;近日却以一种极为“狼狈”的方式闯入大众视野。多达70余辆小米SU7陷入“泊车魔咒”&#xff0c;瞬间在网络上炸开了锅。从“科技控”到“惹祸精”的背后&#xff0c;究竟藏着怎样的…

优维HAO案例:全球TOP15汽车零件供应商「IT运维自动化」创新工程

撰文&#xff1a;鹿小U / 制图&#xff1a;脾气超好 又是一家很厉害的客户。 YADT是全(hu)球(zhēn)领(ji)先(sh)的汽车座椅供应商&#xff0c;拥有从汽车座椅零部件到整椅的完整生产制造能力&#xff0c;为中国几乎所有的汽车制造商提供汽车整椅产品和服务。 YADT在国内拥…

Linux宝塔部署wordpress网站更换服务器IP后无法访问管理后台和打开网站页面显示错乱

一、背景&#xff1a; wordpress网站搬家&#xff0c;更换服务器IP后&#xff0c;如果没有域名时&#xff0c;使用服务器IP地址无法访问管理后台和打开网站页面显示错乱。 二、解决方法如下&#xff1a; 1.wordpress搬家后&#xff0c;在新服务器上&#xff0c;新建站点时&am…

MyBatis框架-动态SQL-XML中的常用标签+特殊字符在XML中的显示

一、if标签、where标签、trim标签、choose标签、set标签、foreach标签 1、问题引入&#xff1a;where关键字和and关键字在动态SQL里面应该如何添加&#xff1f; &#xff08;1&#xff09;if标签&#xff1a; test属性的值是判断条件 if标签里面的内容是条件成立时添加到SQ…