深入解析JMeter响应断言功能

发表于:2023-8-21 09:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:切克呦    来源:稀土掘金

  JMeter 是一个功能强大的性能测试工具,它可以模拟大量用户并发访问网站或应用程序,以测试其性能和稳定性。在进行性能测试时,我们需要对响应结果进行断言,以确保应用程序或网站的功能和性能符合预期。
  在 JMeter 中,响应断言是一种用于检查服务器响应是否符合预期的机制。JMeter 提供了多种类型的响应断言,包括文本、响应代码、响应头、响应时间等。下面将详细介绍 JMeter 中的响应断言。
  响应断言类型
  文本响应断言
  文本响应断言是最常用的一种断言类型,它用于检查服务器响应中是否包含特定的文本。例如,我们可以使用文本响应断言来检查登录页面是否包含“用户名”和“密码”这两个关键字。如果服务器响应中不包含这些关键字,那么断言将失败。
  在 JMeter 中,文本响应断言有多种选项,包括:
  ·包含/不包含:检查服务器响应中是否包含/不包含特定的文本。
  · 匹配/不匹配:使用正则表达式来检查服务器响应中是否包含/不包含特定的文本。
  · 大小写敏感/不敏感:指定断言是否区分大小写。
  响应代码断言
  响应代码断言用于检查服务器响应的 HTTP 状态码是否符合预期。例如,我们可以使用响应代码断言来检查登录页面是否返回 HTTP 200 状态码。如果服务器返回的状态码不是 200,那么断言将失败。
  在 JMeter 中,响应代码断言有多种选项,包括:
  · 等于/不等于:检查服务器响应的 HTTP 状态码是否等于/不等于特定的值。
  · 区间:检查服务器响应的 HTTP 状态码是否在特定的区间内。
  响应头断言
  响应头断言用于检查服务器响应的 HTTP 头信息是否符合预期。例如,我们可以使用响应头断言来检查登录页面是否返回特定的 Content-Type 头信息。如果服务器返回的头信息不符合预期,那么断言将失败。
  在 JMeter 中,响应头断言有多种选项,包括:
  · 包含/不包含:检查服务器响应的头信息中是否包含/不包含特定的值。
  · 匹配/不匹配:使用正则表达式来检查服务器响应的头信息中是否包含/不包含特定的值。
  · 大小写敏感/不敏感:指定断言是否区分大小写。
  响应时间断言
  响应时间断言用于检查服务器响应的时间是否符合预期。例如,我们可以使用响应时间断言来检查登录页面的响应时间是否小于 5 秒。如果服务器响应时间超过了预期,那么断言将失败。
  在 JMeter 中,响应时间断言有多种选项,包括:
  · 大于/小于/等于:检查服务器响应的时间是否大于/小于/等于特定的值。
  · 百分比:指定服务器响应时间的百分比,例如 90%,并检查是否小于特定的值。
  具体使用示例
  添加 HTTP 接口
  我们有如下的 HTTP 接口。
  添加断言
  添加响应断言: 右击接口 > 添加 > 断言 > 响应断言。
  之前的接口返回的数据结果如下:
  {
      "total": 3,
      "data": [
          {
              "id": 1,
              "name": "Apple",
              "price": 100
          },
          {
              "id": 2,
              "name": "Orange",
              "price": 200
          },
          {
              "id": 3,
              "name": "Banana",
              "price": 300
          }
      ]
  }
  我们对 响应文本中 包含字符串 “Apple” 做断言:
  我们对 HTTP 的响应码 做断言:
  断言结果
  运行用例。如果响应符合断言,则什么都不会发生。否则,在结果树中会看到报错信息。将 响应文本中包含Apple 的断言值改成 Apple3,运行,就会看到如下的报错:
  总结
  总之,响应断言是 JMeter 中非常重要的一个功能,它可以帮助我们检查服务器响应是否符合预期。在进行性能测试时,我们应该根据实际情况选择合适的断言类型,并设置合适的参数,以确保测试结果的准确性和可靠性。
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号