以下是接口自动化测试中 Docker 核心场景 的简化汇总:
1. 启动测试依赖服务
# 启动 MySQL 和 Redis docker run -d --name test-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0 docker run -d --name test-redis -p 6379:6379 redis:6.0
2. 初始化测试数据
# 挂载 SQL 文件到 MySQL 容器自动执行 docker run -d --name test-mysql \ -v /path/to/init.sql:/docker-entrypoint-initdb.d/init.sql \ mysql:8.0
3. 容器网络隔离
# 创建网络并启动服务(容器间通过名称通信) docker network create test-network docker run -d --name test-mysql --network test-network mysql:8.0 docker run -d --name api-service --network test-network your-api-image
4. 查看测试日志
# 实时跟踪容器日志 docker logs -f test-mysql # 过滤错误日志 docker logs test-mysql 2>&1 | grep "error"
5. 清理测试环境
# 删除容器、镜像、数据卷 docker stop test-mysql test-redis && docker rm test-mysql test-redis docker rmi your-api-image:latest docker volume prune # 清理无用数据卷
6. 使用 Docker Compose 一键编排
# 启动完整环境(MySQL + Redis + API) docker-compose up -d # 停止并销毁 docker-compose down
7. 构建测试专用镜像
# Dockerfile 示例(Python + pytest) FROM python:3.9 COPY requirements.txt . RUN pip install -r requirements.txt CMD ["pytest", "test_api.py"] # 构建并运行测试 docker build -t test-runner . docker run --network test-network test-runner
核心总结
场景 核心命令 启动服务 docker run -d --name ... -p ... -e ...
数据初始化 -v /host/path:/container/path
容器通信 docker network create
+--network
日志调试 docker logs -f
/grep
环境清理 docker stop/rm/prune
编排工具 docker-compose up -d
+docker-compose down
定制镜像 docker build -t
+Dockerfile