断言 JMeter:响应断言示例

⚡ 智能摘要

断言 JMeter 验证被测服务器是否返回预期的响应,让性能测试人员在负载测试期间验证响应内容、状态码、响应时间、字节大小和文档格式的准确性。

  • 回应断言: 匹配服务器响应字段中的模式。
  • ⏱️ 持续时间断言: 标记任何响应速度低于设定限值的情况。
  • 📦 尺寸声明: 检查响应大小(以字节为单位)。
  • 🧾 XML 和 HTML 断言: 验证 XML 或 HTML 响应语法。
  • 🤖 人工智能协助: 人工智能会提出断言并标记结果异常。

断言 JMeter

什么是断言?

断言有助于验证被测服务器是否返回预期结果。 预期 结果。

断言的类型

以下是一些常用的断言 JMeter:

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

响应断言

响应断言

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

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

持续时间断言

持续时间断言测试每个服务器响应是否在一定时间内收到。 给定量 响应时间超过指定毫秒数将被视为失败。

例如,用户请求被发送到 www.google.com by JMeter 并在 预期 时间 5 毫秒然后 测试用例 通过,否则,测试用例失败。

持续时间断言

尺寸断言

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

JMeter 发送用户请求至 www.google.com 并收到一个比预期小的响应数据包 预期 5000 字节,所以测试用例通过;否则测试用例失败。

XML 断言

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

XML 断言

HTML 断言

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

HTML 断言

使用响应断言的步骤

我们将继续之前开发的脚本 教程.

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

这里是 路线图 对于本次测试:

使用响应断言的步骤

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

步骤 1)添加响应断言

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

添加响应断言

响应断言窗格显示如下图所示:

添加响应断言

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

当你向 Google 服务器可能会返回一些信息 响应码 如下:

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

添加要测试的模式

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

On 要测试的响应字段选择“回复” Code,

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

添加要测试的模式

步骤3)添加断言结果

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

添加断言结果

添加断言结果

步骤 4)运行测试

点击线程组 -> 断言结果

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

测试结果将显示在“断言结果”窗格中。 Google 服务器 响应码 包含模式 302,测试用例是 通过。 您将看到显示如下消息:

运行测试

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

运行测试

计划 Google 服务器响应代码不包含此模式,您将在测试用例中看到。 失败 如下:

运行测试

故障排除

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

  1. 检查您是否通过代理连接到互联网。如果是,请删除代理。
  2. 打开一个新实例 JMeter
  3. 打开 断言测试计划.jmx in JMeter
  4. 点击线程组->断言结果
  5. 运行测试

常见问题

断言用于验证响应是否通过或失败;监听器仅显示结果。

是的。JSON 断言检查 JSON 响应中的值,就像 XML 断言验证 XML 一样。

每次断言都会解析响应并增加 CPU 开销,因此应将断言限制在关键采样器上。

是的。人工智能助手会读取示例回复并生成匹配项。 JMeter 自动断言。

AI 可以标记出响应代码或时间上的异常情况,而固定断言可能会忽略这些异常。

总结一下这篇文章: