Jmeter中的断言

 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


 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

游戏引擎学习第23天

实时代码编辑功能的回顾 当前实现的实时代码编辑功能已经取得了显著的成功&#xff0c;表现出强大的性能和即时反馈能力。该功能允许开发者在修改代码后几乎立即看到变化在运行中的程序中体现出来&#xff0c;极大提升了开发效率。尽管目前的演示内容较为简单&#xff0c;呈现…

排序算法之冒泡排序篇

冒泡排序的思想&#xff1a; 是一个把元素从小到大排的一个算法思想 相邻的两个元素两两比较&#xff0c;大的那一个元素向后移&#xff0c;小的那个元素向前移 核心逻辑&#xff1a; 比较所有相邻的两个项&#xff0c;如果第一个比第二个大&#xff0c;就交换它们 从头开始…

Java ArrayList 与顺序表:在编程海洋中把握数据结构的关键之锚

我的个人主页 我的专栏&#xff1a;Java-数据结构&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01;点赞❤ 收藏❤ 前言&#xff1a;在 Java编程的广袤世界里&#xff0c;数据结构犹如精巧的建筑蓝图&#xff0c;决定着程序在数据处理与存储时的效率、灵活性以…

【笔记】自动驾驶预测与决策规划_Part8_数据驱动的规划方法

文章目录 0. 前言1.生成模型1.1 Diffusion-ES1. Diffusion-ES算法介绍2. Diffusion-ES算法具体流程Diffusion Model 是什么&#xff1f;Diffusion-ES: Evolutionary StrategiesDiffusion-ES MethodDiffusion-ES Mapping Language instructions to reward functions with LLM pr…

React中事件处理和合成事件:理解与使用

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Redis设计与实现第14章 -- 服务器 总结(命令执行器 serverCron函数 初始化)

14.1 命令请求的执行过程 一个命令请求从发送到获得回复的过程中&#xff0c;客户端和服务器都需要完成一系列操作。 14.1.1 发送命令请求 当用户在客户端中输入一个命令请求的时候&#xff0c;客户端会把这个命令请求转换为协议格式&#xff0c;然后通过连接到服务器的套接字…

【C语言】字符串左旋的三种解题方法详细分析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 &#x1f4af;前言&#x1f4af;题目描述&#x1f4af;方法一&#xff1a;逐字符移动法&#x1f4af;方法二&#xff1a;使用辅助空间法&#x1f4af;方法三&#xff1a;三次反转法&#x1f4af;方法对…

【AI绘画】Midjourney进阶:色调详解(上)

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AI绘画 | Midjourney 文章目录 &#x1f4af;前言&#x1f4af;Midjourney中的色彩控制为什么要控制色彩&#xff1f;为什么要在Midjourney中控制色彩&#xff1f; &#x1f4af;色调白色调淡色调明色调 &#x1f4af…

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

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

【Linux】网络通信

TCP协议是一个安全的、面向连接的、流式传输协议&#xff0c;所谓的面向连接就是三次握手&#xff0c;对于程序猿来说只需要在客户端调用connect()函数&#xff0c;三次握手就自动进行了。先通过下图看一下TCP协议的格式&#xff0c;然后再介绍三次握手的具体流程。 TCP的三次握…

Pgsql:json字段查询与更新

1.查询json字段的值 SELECT attribute_data->>设施类别 mycol, * FROM gis_coord_data WHERE attribute_data->>设施类别阀门井 查询结果如下&#xff1a; 2.更新json字段中的某个属性值 UPDATE gis_coord_data SET attribute_data(attribute_data::jsonb ||{&quo…

对于GC方面,在使用Elasticsearch时要注意什么?

大家好&#xff0c;我是锋哥。今天分享关于【对于GC方面&#xff0c;在使用Elasticsearch时要注意什么&#xff1f;】面试题。希望对大家有帮助&#xff1b; 对于GC方面&#xff0c;在使用Elasticsearch时要注意什么&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java…

基于Netty实现聊天室

前言 了解了Netty的基本功能和相关概念&#xff0c;使用基于Netty实现多人聊天的功能。 需求 1.服务端能够接收客户端的注册&#xff0c;并且接受用户的信息注册 2.服务端能够处理客户端发送的消息&#xff0c;并且根据消息类型进行私发或者广播发送消 3.服务端能够私发消…

Linux -日志 | 线程池 | 线程安全 | 死锁

文章目录 1.日志1.1日志介绍1.2策略模式1.3实现日志类 2.线程池2.1线程池介绍2.2线程池的应用场景2.3线程池的设计2.4代码实现2.5修改为单例模式 3.线程安全和函数重入问题3.1线程安全和函数重入的概念3.2总结 4.死锁4.1什么是死锁4.2产生死锁的必要条件4.3避免死锁 1.日志 1.…

【博主推荐】C#的winfrom应用中datagridview常见问题及解决方案汇总

文章目录 1.datagridview绘制出现鼠标悬浮数据变空白2.datagridview在每列前动态添加序号2.1 加载数据集完成后绘制序号2.2 RowPostPaint事件绘制 3.datagridview改变行样式4.datagridview后台修改指定列数据5.datagridview固定某个列宽6.datagridview某个列的显示隐藏7.datagr…

【设计模式】创建型模式之单例模式(饿汉式 懒汉式 Golang实现)

定义 一个类只允许创建一个对象或实例&#xff0c;而且自行实例化并向整个系统提供该实例&#xff0c;这个类就是一个单例类&#xff0c;它提供全局访问的方法。这种设计模式叫单例设计模式&#xff0c;简称单例模式。 单例模式的要点&#xff1a; 某个类只能有一个实例必须…

Vivado程序固化到Flash

在上板调试FPGA时&#xff0c;通常使用JTAG接口下载程序到FPGA芯片中&#xff0c;FPGA本身是基于RAM工艺的器件&#xff0c;因此掉电后会丢失芯片内的程序&#xff0c;需要重新烧写程序。但是当程序需要投入使用时不能每一次都使用JTAG接口下载程序&#xff0c;一般FPGA的外围会…

技术文档,they are my collection!

工作 今天这篇文章&#xff0c;献给一直撰写技术文档的自己。我自认为是公司中最爱写文档的人了&#xff0c;我们是一个不到40人的小公司&#xff0c;公司作风没有多么严谨&#xff0c;领导也不会要求我们写技术文档。但是从入职初至今&#xff0c;我一直保持着写技术文档…

微信小程序学习指南从入门到精通

&#x1f5fd;微信小程序学习指南从入门到精通&#x1f5fd; &#x1f51d;微信小程序学习指南从入门到精通&#x1f51d;✍前言✍&#x1f4bb;微信小程序学习指南前言&#x1f4bb;一、&#x1f680;文章列表&#x1f680;二、&#x1f52f;教程文章的好处&#x1f52f;1. ✅…

JavaWeb——SpringBoot原理

10.1. 配置优先级 10.1.1. 配置文件 properties > yml(推荐) > yaml 10.1.2. Java系统属性、命令行参数 命令行参数 > Java系统属性 > 配置文件 10.2. Bean管理 10.2.1. 手动获取bean ApplicationContext&#xff0c;IOC容器对象 10.2.2. bean作用域 10.2.3.…