冒烟测试是什么
冒烟测试是对构建产物做快速的基础验证:服务能启动、健康检查通过、核心接口返回正常、关键页面可打开。它用少量最稳定的用例回答一个问题——「这次构建值得深入测试吗」。失败即拒绝进入后续测试阶段,把明显不可用的版本第一时间退回,避免测试资源浪费在跑不起来的包上。
基本信息
| 目标 | 用少量用例快速判断构建是否值得深入测试 |
|---|---|
| 时机 | 部署完成后、回归开始前;回滚后也要重跑 |
| 时长预期 | 分钟级,能并行就并行 |
| 范围 | 进程存活、健康检查、核心接口、关键页面 |
| 失败处置 | 直接退回并通知,不进入完整回归 |
接口冒烟示例
接口冒烟示例
curl -fsS -o /dev/null https://api.example.com/healthz && echo 'healthz OK'
curl -fsS https://api.example.com/api/v1/version
# -f 让非 2xx 直接失败;-s 静默进度;-S 保留错误输出
# 核心读接口也应纳入:curl -fsS https://api.example.com/api/v1/ping典型使用场景
- 部署验证:新版本拉起后先跑冒烟,确认基础可用再开回归。
- CI 流水线入口:冒烟不过直接终止流水线,节约后续资源。
- 回滚确认:回滚后重跑冒烟,确认旧版本恢复健康。
- 环境巡检:定时对测试与预发环境跑一遍,发现沉默故障。
- 发布前最终检查:上线窗口前对目标环境做一次全面基础验证。
- 大版本升级后:中间件或依赖升级后快速确认核心链路。
检查项与失败含义
| 检查项 | 典型断言 | 失败含义 |
|---|---|---|
| 进程与端口 | 端口监听、进程存活 | 启动即失败,部署或配置问题 |
| 健康检查 | healthz 返回 200 | 依赖未就绪或启动未完成 |
| 核心接口 | 关键读接口返回结构与状态码正确 | 服务可用但业务逻辑异常 |
| 登录链路 | 测试账号能登录拿到凭证 | 鉴权或数据初始化问题 |
| 关键页面 | 首页与核心页面可打开 | 网关或静态资源问题 |
冒烟集合宜小而稳定:只保留部署后必须成立的检查,避免把冒烟做成小回归。
冒烟用例也要有明确断言:只看进程存活不看接口响应,服务半可用时会被放过。
冒烟失败先复跑一次排除环境抖动,但仍失败必须退回:带着红灯进入回归,后面所有失败都无法归因。