DOCKER_GUIDE.md 3.49 KB

Docker 配置指南

本文档说明如何使用Docker运行API自动化测试框架。


:clipboard: 快速开始

:one: 构建镜像

# 使用docker-compose构建
docker-compose build

# 或使用docker构建
docker build -t api-test:latest .

:two: 运行容器

测试环境

docker-compose run --rm -e DEPLOY_ENV=test api-test-runner

UAT环境

docker-compose run --rm -e DEPLOY_ENV=uat api-test-runner

生产环境

docker-compose run --rm -e DEPLOY_ENV=prod api-test-runner

:three: 查看报告

报告文件保存在 ./reports 目录:

ls -la reports/api_test_report_*.html

:whale: Docker命令

使用 docker-compose

# 运行指定环境的测试
DEPLOY_ENV=test docker-compose run --rm api-test-runner

# 后台运行
docker-compose up -d

# 查看日志
docker-compose logs -f api-test-runner

# 停止服务
docker-compose down

使用 docker 直接命令

# 构建镜像
docker build -t api-test:latest .

# 运行容器
docker run --rm -e DEPLOY_ENV=test api-test:latest

# 挂载卷
docker run --rm \
  -e DEPLOY_ENV=test \
  -v $(pwd)/reports:/app \
  api-test:latest

# 交互式运行
docker run -it --rm \
  -e DEPLOY_ENV=test \
  -v $(pwd)/reports:/app \
  api-test:latest /bin/bash

:open_file_folder: 文件说明

Dockerfile

FROM python:3.8-slim          # 基础镜像
WORKDIR /app                  # 工作目录
COPY . /app/                  # 复制项目
RUN pip install -r requirements.txt  # 安装依赖
ENV DEPLOY_ENV=test           # 默认环境
CMD ["python3", "api_test.py"] # 执行命令

docker-compose.yml

关键配置:

  • 自动环境变量传入
  • 卷挂载:输入Excel、输出报告
  • 资源限制:1核CPU、512MB内存
  • 日志配置:json-file驱动

.dockerignore

排除不必要文件,减小镜像体积


:wrench: 环境变量

支持的环境变量

变量 说明 默认值
DEPLOY_ENV 执行环境 test
IP_HOST 覆盖IP地址 不设置
PYTHONUNBUFFERED 禁用缓冲 1

设置方式

命令行

docker-compose run --rm -e DEPLOY_ENV=test api-test-runner

.env 文件

DEPLOY_ENV=test
IP_HOST=ai-test.hikoon.com

:link: 与 Jenkins 集成

Jenkinsfile 中的 Docker 配置

stage('构建镜像') {
    steps {
        sh 'docker build -t api-test:${BUILD_NUMBER} .'
    }
}

stage('执行测试') {
    steps {
        sh '''
            docker run --rm \
              -e DEPLOY_ENV=${DEPLOY_ENV} \
              -v ${WORKSPACE}/reports:/app \
              api-test:${BUILD_NUMBER}
        '''
    }
}

post {
    always {
        sh 'docker rmi api-test:${BUILD_NUMBER}'
    }
}

:bug: 常见问题

Q1: 容器报错找不到api_cases.xlsx

docker run -v $(pwd)/api_cases.xlsx:/app/api_cases.xlsx:ro api-test:latest

Q2: 报告文件生成在容器内无法访问

docker run -v $(pwd)/reports:/app api-test:latest

Q3: 环境变量未传入

# 正确
docker run -e DEPLOY_ENV=test api-test:latest

# 错误
docker run api-test:latest -e DEPLOY_ENV=test

Q4: 镜像体积过大

使用 .dockerignore 排除不必要文件


:telephone_receiver: 获取帮助


:tada: Docker配置完成!