如何在 JMeter 中使用断言(响应示例)

什么是断言?

断言有助于验证您正在测试的服务器是否返回了预期结果。

断言类型

以下是一些在 JMeter 中常用的断言

  • 响应断言
  • 持续时间断言
  • 大小断言
  • XML 断言
  • HTML 断言
  • 使用响应断言的步骤

响应断言

Response Assertion

响应断言允许您添加模式字符串,以与服务器响应的各个字段进行比较。

例如,您向网站 http://www.google.com 发送用户请求并获得服务器响应。您可以使用响应断言来验证服务器响应是否包含预期的模式字符串(例如“OK”)。

持续时间断言

持续时间断言测试每个服务器响应是否在给定时间内收到。任何超过给定毫秒数(由用户指定)的响应都将被标记为失败响应。

例如,JMeter 向 www.google.com 发送用户请求并在预期的 5 毫秒内获得响应,则测试用例通过,否则测试用例失败。

Duration Assertion

大小断言

大小断言测试每个服务器响应是否包含预期数量的字节。您可以指定大小等于、大于、小于或不等于给定字节数。

JMeter 向 www.google.com 发送用户请求并获得小于预期字节数 5000 字节的响应包,则测试用例通过。否则,测试用例失败。

XML 断言

XML 断言测试响应数据是否由格式正确的 XML 文档组成。

XML Assertion

HTML 断言

HTML 断言允许用户检查响应数据的 HTML 语法。这意味着响应数据必须符合 HTML 语法。

HTML Assertion

使用响应断言的步骤

我们将继续在之前教程中开发的脚本。

在此测试中,我们使用响应断言来比较来自 www.google.com 的响应包是否与您的预期字符串匹配。

这是此测试的路线图

Steps to Use Response Assertion

响应断言控制面板允许您添加模式字符串,以与响应的各个字段进行比较。

步骤 1) 添加响应断言

右键单击线程组 -> 添加 -> 断言 -> 响应断言

Add Response Assertion

响应断言面板显示如下图

Add Response Assertion

步骤 2) 添加要测试的模式

当您向 Google 服务器发送请求时,它可能会返回一些响应代码,如下所示

  • 404:服务器错误
  • 200:服务器正常
  • 302:Web 服务器重定向到其他页面。这通常发生在您从美国境外访问 google.com 时。Google 会重定向到特定国家/地区的网站。如下图所示,google.com 重定向到 google.co.in(针对印度用户)。

Add Pattern to test

假设您要验证 Web 服务器 google.com 响应代码是否包含模式 302

要测试的响应字段上,选择响应代码,

在响应断言面板上,单击添加 -> 显示一个新的空白条目 -> 在“要测试的模式”中输入 302

Add Pattern to Test

步骤 3) 添加断言结果

右键单击线程组,添加 -> 监听器 -> 断言结果

Add Assertion Results

Add Assertion Results

步骤 4) 运行您的测试

单击线程组 -> 断言结果

当您准备运行测试时,单击菜单栏上的运行按钮,或快捷键 Ctrl+R

测试结果将显示在断言结果面板上。如果 Google 服务器响应代码包含模式 302,则测试用例通过。您将看到如下所示的消息

Run The Test

现在回到响应断言面板,您将“要测试的模式”从 302 更改为 500。

Run The Test

由于 Google 服务器响应代码不包含此模式,您将看到测试用例失败,如下所示

Run The Test

故障排除

如果您在运行上述场景时遇到问题……请执行以下操作

  1. 检查您是否通过代理连接到互联网。如果是,请移除代理。
  2. 打开 JMeter 的新实例
  3. 在 JMeter 中打开 AssertionTestPlan.jmx
  4. 单击线程组 -> 断言结果
  5. 运行测试