Ubuntu 中 JMeter 添加断言的完整步骤
一 环境准备与启动
- 确保已安装 Java 与 JMeter。在 Ubuntu 终端执行:jmeter -v 能输出版本号即可。
- 启动 GUI:在终端输入:jmeter(或进入 JMeter 安装目录执行:./jmeter.sh)。GUI 便于可视化添加与调试断言。
二 在 GUI 中添加断言的通用步骤
- 创建基础结构:在左侧测试计划上右键,依次添加 线程组 → HTTP 请求(或你的取样器)。
- 为取样器添加断言:在目标取样器上右键,选择 添加 → 断言,按需选择具体断言类型(如:响应断言、JSON 断言 等)。
- 常用监听用于验证:添加 断言结果 监听器查看断言是否通过;调试阶段可加 察看结果树 辅助定位。
三 常用断言类型与关键配置
- 响应断言(Response Assertion)
- 作用:校验 响应文本、响应代码、响应信息、响应头、URL 样本、请求数据 等。
- 关键配置:
- Apply to:常用 Main sample only;存在重定向/子采样时选 Main sample and sub-samples。
- 要测试的字段:如 响应文本、响应代码、响应信息、Response Headers 等。
- 模式匹配规则:包括/匹配/Equals/Substring/否;支持多模式与 OR 逻辑。
- 特殊项:校验 4xx/5xx 状态码时勾选 Ignore Status,否则 JMeter 会先判定取样失败。
- JSON 断言(JSON Assertion)
- 作用:针对 JSON 响应,校验指定 JSON Path 的值。
- 关键配置:
- Assert JSON Path exists:填写如 $.meta.status 或 $.data.username。
- Additionally assert value:勾选后填写 Expected Value;可用 正则表达式 匹配。
- Invert assertion:取反校验。
- 其他常用断言
- 断言持续时间(Duration Assertion):判断响应时间是否不超过阈值,用于性能阈值校验。
- 大小断言(Size Assertion):判断响应体/响应头大小是否符合预期。
- BeanShell 断言(BeanShell Assertion):用脚本实现复杂逻辑(性能测试慎用)。
四 快速示例
- 示例一 响应断言校验状态码为 200
- 取样器:HTTP 请求(目标接口)。
- 添加断言:取样器上右键 → 添加 → 断言 → 响应断言。
- 配置要点:
- Apply to:Main sample only
- 要测试的字段:响应代码
- 模式匹配规则:Equals
- 要测试的模式:200
- 如接口可能返回 4xx/5xx 且仍要断言内容,勾选 Ignore Status。
- 示例二 JSON 断言校验业务字段
- 响应示例:{“meta”:{“msg”:“登录成功”,“status”:200},“data”:{…}}
- 添加断言:取样器上右键 → 添加 → 断言 → JSON Assertion。
- 配置要点:
- Assert JSON Path exists:$.meta.status
- Additionally assert value:勾选;Expected Value:200
- Match as regular expression:按需勾选(默认精确匹配)。
五 命令行运行与结果查看
- 非 GUI 执行(适合压测):在脚本所在目录执行
- jmeter -n -t your_plan.jmx -l result.txt -e -o report/
- 说明:-n 非 GUI;-t 脚本;-l 结果文件;-e -o 生成 HTML 报告。断言结果会体现在报告与日志中。
- 监听器的使用建议
- 调试阶段:添加 断言结果 与 察看结果树 快速定位问题。
- 压测阶段:禁用 察看结果树 与 断言结果 以降低内存与 I/O 开销,仅保留必要聚合报告。