学习目标
为什么学习
DevOps 时代,测试不再是一次性的活动,而是持续集成、持续交付的一部分。
你将掌握
CI/CD 流水线设计 测试阶段详解 测试环境管理 部署策略(金丝雀、蓝绿) 监控与告警
一、CI/CD 流水线架构
代码提交 → Lint → 单元测试 → 构建 → 集成测试 → E2E测试 → 安全扫描 → 部署预览 → 合并 → 生产部署二、GitHub Actions 配置
jobs:lint:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v4- uses: actions/setup-node@v4with:node-version: '20'cache: 'npm'- run: npm ci- run: npm run linttest:runs-on: ubuntu-lateststeps:- uses: actions/checkout@v4- uses: actions/setup-node@v4with:node-version: '20'cache: 'npm'- run: npm ci- run: npm run test:run- uses: codecov/codecov-action@v4build:needs: [lint, test]runs-on: ubuntu-lateststeps:- run: npm run builde2e:needs: [build]runs-on: ubuntu-lateststeps:- run: npx playwright install- run: npm run dev &- run: npm run test:e2e三、部署策略
常见部署策略
| 直接部署 | ||
| 蓝绿部署 | ||
| 金丝雀发布 | ||
| 特性开关 |
金丝雀发布
1. 部署到金丝雀(10% 流量)2. 运行金丝雀测试3. 监控 10 分钟(错误率、响应时间)4. 错误率 > 1% → 自动回滚5. 没问题 → 全量部署四、监控与告警
监控指标
回滚触发条件
错误率 > 5% 响应时间 > 3 秒 健康检查失败
五、核心比喻
💡 比喻 1:CI/CD 流水线 = 生产线
每个 Stage = 生产线上的质检工位,失败则停止,通过则继续。
💡 比喻 2:金丝雀发布 = 煤矿中的金丝雀
金丝雀敏感,先用小范围用户测试,降低风险。
💡 比喻 3:监控 = 健康手环
实时监测、异常告警、数据趋势、自动响应。
六、✅ QA Checklist
⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜
七、❓ 思考题
CI/CD 流水线中的"失败"策略应该是什么? E2E 测试是流水线中最慢的部分,如何平衡测试覆盖率和速度? 金丝雀发布的"小比例"应该设多少?考虑哪些因素? 监控和测试有什么关系?监控能否替代测试?
夜雨聆风