ubuntu jmeter断言设置
小樊
38
2025-12-24 12:47:51
Ubuntu 下 JMeter 断言设置指南
一 环境准备与运行方式
- 在 Ubuntu 终端启动 JMeter:运行命令 jmeter(确保已安装并赋予可执行权限,必要时执行 chmod +x jmeter)。GUI 与命令行方式均可添加与运行断言。为便于调试,建议添加监听器 查看结果树 与 断言结果;命令行执行时使用 -n -t 脚本.jmx -l 结果.jtl 生成报告,断言结果会随采样记录一并写入。
二 常用断言类型与关键配置
- 响应断言 Response Assertion
- 作用范围 Apply to:常用 Main sample only;存在重定向/并行子请求时用 Main sample and sub-samples;也可对 JMeter Variable 断言。
- 要测试的字段 Field to Test:常用 响应文本、响应代码、响应信息、响应头、URL样本、请求数据;不建议普通 HTTP 场景选择 Document(text)(基于 Apache Tika,耗内存且易解析失败)。
- 模式匹配规则:
- Contains/Matches 支持正则;Equals/Substring 为纯字符串;
- Matches 要求“全量匹配”;
- 可勾选 Not 取反;多模式时可用 Or 实现“或”逻辑(默认多模式为“与”)。
- JSON 断言 JSON Assertion
- 指定 JSON Path(如 $.meta.status);勾选 Additionally assert value 填写 Expected Value;可用 Match as regular expression 进行正则校验;Expect null 与 Invert assertion 用于空值与非匹配校验。
- 大小断言 Size Assertion
- 校验响应(或响应头/响应体等)字节大小,支持 等于/大于/小于/不等于 阈值,用于文件下载、乱码响应等场景的大小校验。
- 断言持续时间 Duration Assertion
- 校验响应是否在指定 毫秒 内返回,超时即判定失败。
- BeanShell 断言 BeanShell Assertion
- 通过脚本实现复杂校验,使用内置变量 Failure / FailureMessage 设置结果;适合非常规逻辑(性能场景慎用)。
三 典型配置示例
- 校验 JSON 响应:status 为 200 且 msg 为 登录成功
- 添加 JSON Assertion:
- Assert JSON Path exists:$.meta.status;勾选 Additionally assert value;Expected Value:200;
- Assert JSON Path exists:$.meta.msg;勾选 Additionally assert value;Expected Value:登录成功。
- 校验 HTTP 状态码为 404/501 等异常码
- 添加 Response Assertion:
- Field to Test:响应代码;Patterns:404 或 501;
- 勾选 Ignore Status(因为 4xx/5xx 默认被 JMeter 视为失败,需忽略原始状态后再断言)。
- 校验响应体包含关键字且响应时间小于 500ms
- 添加 Response Assertion:Field to Test:响应文本;Pattern Matching Rules:Contains;Patterns:关键字;
- 添加 Duration Assertion:Duration:500。
- 校验下载文件大小大于 1 MB
- 添加 Size Assertion:Apply to:完整响应;Size to Test:1048576;比较类型:大于。
四 查看结果与排错
- 在 GUI 中使用 查看结果树 与 断言结果 监听器:失败会在取样器上以 红色 标记,并在断言结果中给出失败原因与期望值/实际值对比。
- 命令行运行后,打开 结果.jtl 或在报告中查看断言结论;若使用 比较断言,请仅在功能/调试阶段使用,避免 负载测试 期间使用(资源消耗大)。