分类目录归档:持续集成

Testcontainers隔离依赖服务的实践

发表评论 1044 浏览量

Testcontainers隔离依赖服务的实践

2025年3月记录,分类「持续集成」。这是一篇偏实战的记录,保留了当时的判断过程和后续沉淀。

为什么隔离

接口测试依赖真实 MySQL、Redis、MQ 时,Testcontainers 可以让每次测试拥有独立依赖,减少共享环境带来的偶现失败。

对测试来说,最后要落到可复现、可验证、可交接,文章也是按这个思路写的。

用在哪

  • 为集成测试启动独立数据库和缓存容器。
  • 测试开始前执行 schema 和基础数据初始化。
  • 测试结束自动销毁容器,避免污染环境。
with MySqlContainer('mysql:8.0') as my

阅读全文

灰度发布和回滚演练的测试关注点

发表评论 1227 浏览量

灰度发布和回滚演练的测试关注点

2024年12月记录,分类「持续集成」。内容按测试执行视角整理,尽量把背景、操作和验收口径讲清楚。

灰度前

灰度发布不能只看新版本能不能访问,还要看流量切分、配置兼容、数据兼容和回滚路径。

整理时我特意把输入、动作、观察点和风险拆开,方便后面补用例。

灰度中

  • 灰度前确认监控、告警、开关和回滚包。
  • 灰度中对比新旧版本核心指标和错误日志。
  • 回滚后验证数据、缓存和定时任务状态。
灰度10% -> 观察30分钟 -> 错误率/p95/告警达标 -> 扩到50%
异常: 立即切回旧版本并验证缓存状态

回滚演练

  • 灰度比例和目标用户可控。
  • 回滚

阅读全文

GitLab CI跑接口自动化的最小闭环

发表评论 1771 浏览量

GitLab CI跑接口自动化的最小闭环

2023年2月记录,分类「持续集成」。这里不追求大而全,主要记录一个测试点从发现到落地的过程。

最小闭环

GitLab CI 跑接口自动化,我先做最小闭环:拉代码、装依赖、跑用例、留报告。复杂能力后面再加,先保证失败有人看。

这类问题如果只写结论,过一段时间就很难复用,所以我把判断依据也留了下来。

CI里放什么

  • 按环境变量传入 host、账号和 token,不写死在仓库。
  • pytest 输出 junit 和 html 两份报告。
  • 失败时保留请求日志,方便不用进 Runner 也能定位。
api-test:
  script:
    - pyt

阅读全文

Jenkins流水线部署Django测试环境

发表评论 2180 浏览量

Jenkins流水线部署Django测试环境

2022年11月记录,分类「持续集成」。这是一篇偏实战的记录,保留了当时的判断过程和后续沉淀。

为什么接流水线

Django 测试环境以前靠手工进服务器拉代码、重启 uWSGI,问题是每个人操作习惯不同。接到 Jenkins 后,至少能保证部署步骤一致。

对测试来说,最后要落到可复现、可验证、可交接,文章也是按这个思路写的。

流水线步骤

  • 拉代码后先安装依赖和执行迁移检查。
  • 重启前备份当前版本号和关键配置。
  • 部署完成后自动跑首页、登录、核心接口的冒烟。
stage('smoke') {
  steps { sh 'py

阅读全文