九号工具站
返回列表

QA 必学 Docker 实战指南:测试环境管理、容器化测试、CI/CD 整合完全教学

QA 工程师必备的 Docker 技能完全教学,涵盖测试环境一键启动、容器化测试执行、多环境管理、CI/CD 整合等实际场景,附可直接套用的指令和设定范例。

Docker QA 测试环境 容器化 CI/CD Docker Compose DevOps

最后更新:2026-05-24

1. QA 为什么要学 Docker?

你有没有遇过这些情况:「我的测试环境装不起来」「staging 环境被别人改坏了」「这个 Bug 在我的环境上重现不了」? Docker 可以一次解决这些问题。它把应用程式和所有依赖打包成一个「容器」,不管在哪台电脑上跑,环境都一模一样。

  • 环境一致性:所有 Qa 的测试环境完全相同,不再有「在我这边没问题」的争议
  • 一键启动:Docker Compose Up 一个指令就能启动完整的测试环境(Web + Db + Redis + ...)
  • 环境隔离:每个人都有自己的容器环境,互不干扰,不怕被别人改坏
  • 快速重置:环境有问题? Docker Compose Down && Docker Compose Up 重新建一个干净的
  • Ci/Cd 整合:在 Ci/Cd Pipeline 中用 Docker 跑测试,跟本地环境完全一致

2. 安装与基本概念

开始之前需要安装 Docker Desktop,然后理解三个核心概念。

  • 安装:到 Docker.Com 下载 Docker Desktop(Mac/Windows/Linux 都支援),安装后即可使用
  • Image(映像档):就像安装光碟,是建立容器的模板。例如 Postgres:16 是 Postgresql 16 版的映像档
  • Container(容器):从映像档启动的实例,就像从光碟安装到电脑上。每个容器是独立的执行环境
  • Docker Compose:用一个 Yaml 档案定义多个容器(Web + Db + Redis),一个指令全部启动
  • 确认安装成功:Docker --Version 和 Docker Compose Version

小提示

  • Docker Desktop 会占用不少记忆体(建议电脑至少 8GB RAM),不用时可以关闭节省资源

3. QA 最常用的 Docker 指令

QA 日常只需要用到以下这些指令,不需要学建立映像档那些。

  • 启动容器:Docker Compose Up -D → 在背景启动所有服务。 -D 是 Detach 模式(不占用终端机)
  • 停止容器:Docker Compose Down → 停止并移除所有容器。加 -V 连资料也清除
  • 查看状态:Docker Compose Ps → 看所有容器的运行状态(是否健康、Port 对应)
  • 查看 Log:Docker Compose Logs Web → 查看 Web 服务的 Log。加 -F 即时追踪
  • 进入容器:Docker Compose Exec Web Bash → 进入 Web 容器的命令列,像 Ssh 进伺服器一样
  • 重启单一服务:Docker Compose Restart Web → 只重启 Web,不影响资料库等其他服务
  • 清理空间:Docker System Prune → 清理不用的映像档和容器,释放磁碟空间

4. 实战:用 Docker Compose 建立测试环境

以下是一个典型的 QA 测试环境 Docker Compose 设定,包含 Web 应用、资料库和 Redis。

  • Docker-Compose.Yml 结构:定义 Services(Web、Db、Redis)、Ports(对外的 Port)、Volumes(资料持久化)、Environment(环境变数)
  • 启动完整环境:Docker Compose Up -D → 一个指令启动 Web + Postgresql + Redis
  • 确认所有服务健康:Docker Compose Ps 确认所有容器状态为 Running/Healthy
  • 连线测试:Curl Http://Localhost:8080 测试 Web 是否正常回应
  • 连线资料库:用 Dbeaver 连到 Localhost:5432 操作测试资料库
  • 重置环境:Docker Compose Down -V && Docker Compose Up -D → 完全重建干净的环境

小提示

  • 把 docker-compose.yml 加入版本控制(Git),确保所有 QA 用的是同一份设定
  • 环境变数(帐号密码等)用 .env 档案管理,不要写死在 docker-compose.yml 中

5. 在 Docker 中跑自动化测试

用 Docker 跑测试的最大好处是环境一致性——本地跑的结果跟 CI/CD 上跑的结果一样。

  • 一次性执行测试:Docker Compose Run --Rm Test Pytest Tests/ → 启动一个临时容器跑 Pytest,跑完自动移除
  • 平行测试:用多个容器同时跑不同的测试套件,缩短整体测试时间
  • 浏览器测试:Docker Compose 加入 Selenium Grid 或 Playwright 容器,在容器中跑 Ui 测试
  • 测试资料隔离:每次跑测试前用 Docker Compose Down -V 重建资料库,确保测试间互不干扰
  • 产出报告:测试结果输出到挂载的 Volume,方便在容器外查看报告

6. 多环境管理:Dev / Staging / QA

不同环境的设定不同(资料库连线、API 网址等),Docker 让你轻松切换。

  • 用 .Env 档切换:建立 .Env.Dev、.Env.Staging、.Env.Qa 三个档案,启动时指定:Docker Compose --Env-File .Env.Qa Up -D
  • 用 Override 档案:Docker-Compose.Override.Yml 只覆盖需要改的部分,不动基础设定
  • 环境比对:在不同环境的容器中跑相同的测试,比较结果差异
  • 快速切换:Alias Qa-Up='Docker Compose --Env-File .Env.Qa Up -D' → 自订快捷指令,一键切换环境

7. Docker 在 CI/CD 中的应用

QA 理解 Docker 在 CI/CD 中的角色,能更有效地与 DevOps 团队协作。

  • Ci/Cd 测试流程:Pr 建立 → Ci 启动 Docker 容器 → 跑自动化测试 → 产出报告 → 通过则允许合并
  • Github Actions 范例:在 .Github/Workflows 中用 Services 区块定义测试所需的资料库和 Redis 容器
  • 测试环境自动部署:每个 Pr 自动部署一个独立的 Docker 环境供 Qa 手动测试,Pr 关闭后自动销毁
  • 映像档版本追踪:确认 Ci/Cd 用的 Docker 映像档版本跟本地一致,避免「Ci 上过但本地失败」

小提示

  • 如果你的 CI/CD 测试结果跟本地不同,90% 的原因是 Docker 映像档版本不一致。先比对版本

8. 常见问题与除错

QA 使用 Docker 最常遇到的问题和解决方法。

  • Q:Port 冲突(Error: Port Is Already Allocated)→ A:用 Docker Ps 找出占用 Port 的容器,Docker Stop 停掉它。或改用其他 Port
  • Q:容器启动后立刻停止 → A:Docker Compose Logs Service_Name 看 Log 找原因。通常是设定错误或依赖服务没准备好
  • Q:磁碟空间不足 → A:Docker System Prune -A 清理所有未使用的映像档和容器。定期清理很重要
  • Q:资料库连不上 → A:确认 Db 容器的 Port 对应正确、帐号密码跟 .Env 一致。用 Docker Compose Exec Db Psql -U User 测试
  • Q:Mac 上 Docker 很慢 → A:Docker Desktop 设定中调整 Cpu 和记忆体分配。也可以考虑用 Orbstack 替代(更快更省资源)

重点整理

  • 1 Docker 解决 QA 最大的痛点——「在我的环境上跑得好好的」,容器确保所有人的测试环境一致
  • 2 学会 Docker 后,QA 可以一键启动完整的测试环境,不再依赖 DevOps 帮你设定
  • 3 本指南按 QA 实际需求编排,不讲 Docker 的所有功能,只讲 QA 需要的部分
  • 4 从基础指令到 Docker Compose 多服务编排,涵盖 QA 日常工作的完整场景
ℹ️

一般声明

本站提供之资讯仅供参考,不保证其完整性与正确性。使用者应自行判断资讯之适用性。

意见反馈