分类标签归档:Docker

容器健康检查写不好,测试环境就会假绿

发表评论 533 浏览量

容器健康检查写不好,测试环境就会假绿

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

问题定位

测试工程师经常要处理环境问题。我的做法是把服务、配置、日志、数据库、网络这几层分开看,避免一上来就重启碰运气。

我更关注它在真实提测流程里怎么落地,而不是单独演示一个命令或脚本。

处理顺序

  • 先确认容器、端口、进程和健康检查。
  • 再看配置变更、环境变量、挂载目录和依赖地址。
  • 恢复后补一组冒烟用例,确认业务真的可用。
docker ps
docker logs --tail=100 web
curl -I http://127.0.0.1/he

阅读全文

供应链安全测试:SBOM、镜像扫描和依赖升级

发表评论 1179 浏览量

供应链安全测试:SBOM、镜像扫描和依赖升级

2025年5月记录,分类「安全测试」。这篇更像工作笔记,记录的是一次问题拆解和复用清单。

检查范围

供应链安全不是扫描一下就结束。测试侧要关注依赖来源、漏洞等级、是否可利用、升级后兼容性。

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

工具输出

  • 生成 SBOM,明确应用依赖和镜像层。
  • 扫描高危漏洞并确认运行时是否受影响。
  • 依赖升级后跑接口、启动和核心业务回归。
syft packages docker:app:latest -o cyclonedx-json > sbom.json
grype sbom:sbom.js

阅读全文

Testcontainers隔离依赖服务的实践

发表评论 1044 浏览量

Testcontainers隔离依赖服务的实践

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

为什么隔离

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

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

用在哪

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

阅读全文

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

发表评论 1227 浏览量

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

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

灰度前

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

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

灰度中

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

回滚演练

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

阅读全文

Docker镜像瘦身:测试环境也要可维护

发表评论 1171 浏览量

Docker镜像瘦身:测试环境也要可维护

2024年9月记录,分类「Docker」。这里不追求大而全,主要记录一个测试点从发现到落地的过程。

为什么要瘦身

测试环境镜像太大,会拖慢构建和部署,也会隐藏依赖混乱的问题。瘦身不是为了极限小,而是为了可维护。

记录这篇的目的,是让下次遇到同类问题时少走一轮弯路。

处理动作

  • 使用 slim 基础镜像并固定版本。
  • 构建阶段和运行阶段分开,清理缓存和临时文件。
  • 把系统依赖、Python 依赖和启动命令写清楚。
FROM python:3.11-slim
COPY requirements.txt .
RUN pip install --no-cac

阅读全文

Kubernetes临时测试环境:命名空间和资源清理

发表评论 1537 浏览量

Kubernetes临时测试环境:命名空间和资源清理

2024年3月记录,分类「Kubernetes」。这篇更像工作笔记,记录的是一次问题拆解和复用清单。

临时环境的目标

临时测试环境最怕开了没人关。Kubernetes 里我会优先用 namespace 隔离,并给资源打标签,方便清理和统计成本。

记录这篇的目的,是让下次遇到同类问题时少走一轮弯路。

资源隔离

  • 每个需求或分支使用独立 namespace。
  • Deployment、Service、ConfigMap、Secret 都打统一 label。
  • 设置过期时间,定时任务清理长时间不用的环境。
kubectl create names

阅读全文

Jenkins流水线部署Django测试环境

发表评论 2180 浏览量

Jenkins流水线部署Django测试环境

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

为什么接流水线

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

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

流水线步骤

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

阅读全文

Docker网络排查:容器互通、端口映射和DNS

发表评论 2207 浏览量

Docker网络排查:容器互通、端口映射和DNS

2022年9月记录,分类「Docker」。这里不追求大而全,主要记录一个测试点从发现到落地的过程。

现象

容器网络问题经常表现成接口超时或数据库连不上。那次我遇到的是容器内能 ping 通 IP,但服务名解析失败,最后定位到 compose 网络和容器重建顺序不一致。

我更关注它在真实提测流程里怎么落地,而不是单独演示一个命令或脚本。

网络层怎么查

  • 先在容器内 curl 服务名和端口,确认是不是 DNS 或端口问题。
  • 用 docker network inspect 看容器是否在同一个网络。
  • 把宿主机端口映射和容器内部端口分开记录。
d

阅读全文

Docker Compose快速拉起一套测试环境

发表评论 2101 浏览量

Docker Compose快速拉起一套测试环境

2022年5月记录,分类「Docker」。这篇按当时的测试现场整理,重点放在目标、动作和可复用的检查点。

要解决的问题

这篇记录的是把 Django、MySQL、Nginx、Redis 这类依赖拉到一份 compose 里的过程。目标不是追求生产级复杂度,而是让测试环境能快速重建。

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

compose里固定什么

  • 镜像版本写死,避免今天拉到的版本和上周不一样。
  • 数据库、缓存、上传目录都挂 volume,重启容器不丢数据。
  • 服务启动后先跑健康检查,再跑接口冒烟。
docke

阅读全文