Jmeter断言

JMeter 中,断言用于验证请求的响应是否符合预期结果。每种断言有不同的功能,帮助测试人员确保系统在负载下能按预期工作。以下是对 响应断言JSON 断言持续时间断言 的详细介绍。


1. 响应断言 (Response Assertion)

响应断言 是 JMeter 中最常用的断言类型,用于验证请求的响应是否符合预期。可以通过检查响应的状态码、内容、大小等多种方式来进行验证。
在这里插入图片描述

响应断言的常见功能
  • 检查响应是否包含特定的文本:确保响应正文中包含某些期望的字符串。
  • 正则表达式匹配:通过正则表达式验证响应内容是否符合预期。
  • 状态码验证:验证 HTTP 响应状态码是否为预期值(例如,200 OK、404 Not Found)。
  • 响应内容大小:验证响应体的大小是否符合预期。
配置步骤
  1. 在请求元素下,右键点击选择 添加 > 断言 > 响应断言
  2. 响应断言 中设置需要验证的条件。常见的条件包括:
    • 检查字段:选择要验证的字段,如响应文本、响应代码、响应头等。
    • 匹配规则:设置匹配规则,通常有以下几种:
      • 包含:检查响应中是否包含某个字符串。
      • 匹配正则表达式:通过正则表达式验证响应数据。
      • 完全匹配:响应内容是否完全与预期内容匹配。
示例 1:验证是否包含"百度一下,你就知道"字段
  • 配置如上图,同时添加断言结果
  • 结果:无明显提示,就是没有问题
  • 如果断言错误,结果如下:
    在这里插入图片描述
    在这里插入图片描述
断言参数详解
  1. Apply to:适用范围
  • Main sample and sub-samples: 作用于父节点取样器及对应子节点取样器;
  • Main sample only: 仅作用于父节点取样器;
  • Sub-samples only: 仅作用于子节点取样器;
  • JMeter Variable: 作用于jmeter变量(输入框内可输入jmeter的变量名称);
  1. 测试字段:要检查的项
  • 响应文本: 来自服务器的响应文本,即主体,不包括任何HTTP头
  • 响应代码: 响应的状态码,例如:200
  • 响应信息: 响应的信息,例如:OK
  • Response Headers: 响应头部
  • Request Headers: 请求头部
  • Request Data: 请求数据
  • URL样本: 响应的URL
  • Document(text): 响应的整个文档
  • 忽略状态:忽略返回的响应状态码
  1. 模式匹配规则
  • 包括:文本包含指定的正则表达式
  • 匹配:整个文本匹配指定的正则表达式
  • 相等:整个返回结果的文本等于指定的字符串(区分大小写)
  • 字符串:返回结果的文本包含指定字符串(区分大小写)
  • 否:取反
  • 或者:如果存在多个测试模式,勾选代表逻辑或(只要有一个模式匹配,则断言就是OK),不勾选代表逻辑与(所有都必须匹配,断言才是OK)

2. JSON 断言 (JSON Assertion)

JSON 断言 是专门用于验证 JSON 格式响应的内容的断言类型。它可以帮助验证 API 返回的数据结构是否符合预期,特别是在接口返回的是 JSON 格式时。

JSON 断言的功能
  • 检查 JSON 响应格式是否有效:确保响应体符合有效的 JSON 格式。
  • 验证 JSON 字段值:验证特定字段的值是否符合预期。
  • 验证 JSON 数据的结构:确保 JSON 响应的数据结构和字段符合预期。
配置步骤
  1. 在请求元素下,右键点击选择 添加 > 断言 > JSON 断言
  2. 配置 JSON 断言,设置需要验证的 JSON 元素。
    • 检查字段值:可以指定 JSON 中某个字段的值,验证其是否正确。
    • 验证 JSON 格式:检查响应是否为有效的 JSON 格式。
示例 1:检查 JSON 响应是否包含特定字段
  • 请求url:http://t.weather.itboy.net/api/weather/city/101010100

  • JSON断言设置:
    在这里插入图片描述

  • JSON 断言 中:

    • JSON 路径$.cityInfo.city
    • 预期值北京
  • 结果:成功

断言参数详解
  • Assert JSON Path exists:用于断言的JSON元素的路径
  • Additionally assert value:如果您想要用某个值生成断言,请选择复选框
  • Match as regular expression:如果需要使用正则表达式,请选择复选框
  • Expected Value:期望值,用于断言的值或用于匹配的正则表达式的值
  • Expect null:如果希望为空,请选择复选框
  • Invert assertion (will fail if above conditions met):反转断言(如果满足以上条件则失败)

3. 持续时间断言 (Duration Assertion)

持续时间断言 用于验证请求的响应时间是否在预期的时间范围内。通常用于性能测试中,确保系统在一定的负载下能保持良好的响应速度。

持续时间断言的功能
  • 验证请求的响应时间:确保请求的响应时间不超过指定的最大值。
  • 测试性能要求:可以设置一个阈值(如 2 秒),确保响应时间小于这个阈值。
配置步骤
  1. 在请求元素下,右键点击选择 添加 > 断言 > 持续时间断言
  2. 配置断言的最大响应时间(单位:毫秒)。
    • 最大响应时间:设置响应的最大时间限制。
    • 如果响应时间超过该限制,断言会失败。
示例 1:验证请求淘宝响应时间是否小于 50 ms
  • 请求url:https://www.taobao.com
  • 持续时间断言设置:
    在这里插入图片描述
  • 结果:失败
    在这里插入图片描述

总结

JMeter 中的断言是性能测试中非常重要的部分,它们帮助确保系统在高负载下不仅能够处理请求,还能按预期返回正确的数据。下面是三种常见断言的总结:

  • 响应断言:检查响应的状态码、返回的文本、正则表达式匹配等,用于验证响应是否符合预期。
  • JSON 断言:专门用于验证 JSON 格式响应的内容和结构,确保字段和值符合预期。
  • 持续时间断言:用于验证请求的响应时间是否满足性能要求,确保系统在负载下能保持良好的响应速度。

通过合理配置这些断言,您可以确保系统在各种负载下的稳定性、正确性和性能,其它断言方式请自行查阅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值