—
前言
大家好,我是容器测试员。做测试环境管理5年,Docker彻底改变了测试环境搭建的方式。今天分享Docker容器化测试环境的搭建经验。
—
一、为什么用Docker搭建测试环境?
传统环境痛点
- 环境不一致:开发、测试、生产环境差异
- 搭建耗时:手动安装配置,耗时长
- 难以复现:环境问题难以定位和复现
- 资源浪费:多套环境占用大量资源
Docker优势
| 优势 | 说明 |
|---|---|
| 一致性 | 环境完全一致 |
| 快速 | 秒级启动 |
| 可复现 | 镜像固定 |
| 节省资源 | 容器轻量 |
—
二、Docker基础概念
核心概念
- 镜像(Image):环境的模板
- 容器(Container):镜像的运行实例
- 仓库(Registry):镜像存储
Dockerfile
dockerfile
测试环境Dockerfile
FROM python:3.9
WORKDIR /app
安装依赖
COPY requirements.txt .
RUN pip install -r requirements.txt
复制代码
COPY . .
启动命令
CMD [“pytest”, “tests/”]
—
三、测试环境Docker化
Web测试环境
yaml
docker-compose.yml
version: ‘3’
services:
# 测试应用
app:
build: .
ports:
– “8080:8080”
depends_on:
– db
– redis
# 数据库
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: test123
MYSQL_DATABASE: test_db
volumes:
– db_data:/var/lib/mysql
# Redis
redis:
image: redis:alpine
# Selenium Grid
selenium-hub:
image: selenium/hub:4
ports:
– “4444:4444”
selenium-node:
image: selenium/node-chrome:4
depends_on:
– selenium-hub
environment:
SE_EVENT_BUS_HOST: selenium-hub
—
四、一键部署脚本
bash
#!/bin/bash
deploy_test_env.sh
echo “启动测试环境…”
启动所有服务
docker-compose up -d
等待服务就绪
echo “等待服务启动…”
sleep 30
检查服务状态
docker-compose ps
运行测试
docker-compose exec app pytest tests/
echo “测试完成,清理环境…”
docker-compose down
—
五、RunnerGo Docker部署
RunnerGo官方提供Docker部署方案:
yaml
RunnerGo docker-compose
version: ‘3’
services:
runnergo-web:
image: runnergo/web:latest
ports:
– “3000:3000”
runnergo-server:
image: runnergo/server:latest
ports:
– “8000:8000”
mysql:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: runnergo
mongo:
image: mongo:latest
redis:
image: redis:alpine
—
总结
Docker测试环境要点:
| 环节 | 配置 |
|---|---|
| 镜像构建 | Dockerfile定义 |
| 服务编排 | docker-compose.yml |
| 一键部署 | Shell脚本 |
| 环境清理 | docker-compose down |
—
下期预告:测试右移与生产监控 – 发布后的质量保障策略