断言(Assertion)
可以使用断言它们来针对样本及其子样本运行以确保返回值与预期结果匹配
JMeter 断言的成本
所有断言都伴随着 CPU 或内存消耗的成本。但是,某些断言的成本高于其他断言。,Response Assertion和Duration Assertion 通常是影响较小的选择,而 Compare Assertion 和其他基于 XML 的断言(如 XPath 断言)消耗更多的 CPU 和内存。
1、 Response Assertion
最常用的断言是Response Assertion,它检查响应文本/正文/代码/消息/标题是否包含、匹配或等于指定的模式。
参数说明:
可以检查的响应实体包括
- Text response: 响应文本,响应服务器返回的文本内容
- Document (text): 文档(文本),请小心,因为这对于高负载可能会占用大量内存。
- URL Sampled : 此断言针对请求的 URL 使用以确保它符合预期。例如,您可能想要检查重定向 URL 是否在路径中的某处不包含错误
- Response Code: 确保响应代码是预期的,例如返回200
- Response Message : 验证响应消息 是否按预期显示
- Response Headers : 响应标头以查看特定的 HTTP 标头是否存在
Pattern Matching Rules(模式匹配的规则)
-
Contains: 响应内容包含需要匹配的内容即代表响应成功,支持正则表达式。
-
Matches: 响应内容要完全匹配需要匹配的内容即代表响应成功,大小写不敏感,支持正则表达式。
-
Equals: 响应内容要完全等于需要匹配的内容才代表响应成功,大小写敏感,需要匹配的内容是字符串
-
Substring: 响应内容包含需要匹配的内容才代表响应成功,大小写敏感,需要匹配的内容是字符串
-
Not: 勾选上之后,会对前面选择的进行反转
-
OR: 应用 OR 组合中的每个断言(如果有 1 个模式来测试匹配,则断言将正常),将多个断言模式进行OR连接
-
Patterns to Test:要测试的模式列表。每个模式都单独测试。如果模式失败,则不会检查其他模式。用多个模式设置一个断言和用一个模式设置多个断言之间没有区别(假设其他选项相同)
-
Custom failure message: 自定义失败消息 定义将替换生成的失败消息
2、Duration Assertion
持续时间断言,验证取样器运行测试消耗的时间,可以针对主取样器与子取样器;时间单位毫秒
Duration Assertion与Response Assertion一起使用,它涵盖了需要断言的 90% 的用例。用法非常简单:它提供以毫秒为单位的最大持续时间,如果任何请求持续时间超过指定的值,则样本被标记为失败。断言失败时的运行结果
3、Size Assertion
大小断言检查响应长度以查看它是否等于/不等于/大于/小于以“字节”为单位的预期大小。它可以应用于:
- Full response : 完整响应(正文和标题)
- Response headers: 响应头
- Response body: 响应体
- Response code: 响应码
- Response message: 响应消息
检查响应大小的最简单方法是通过“查看结果树侦听器”,以下是示例输出的示例:
失败的断言
4、Beanshell Assertion
Beanshell 断言允许您使用 Beanshell 脚本对采样器执行额外检查