1. 安装GitLab Runner
GitLab Runner是执行CI/CD任务的客户端,需先在Linux系统上安装。以Ubuntu为例,可通过以下命令完成安装:
# 添加GitLab Runner仓库
curl -s https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
# 安装GitLab Runner
sudo apt-get install gitlab-runner
安装完成后,可通过gitlab-runner --version验证是否安装成功。
2. 配置GitLab Runner
安装完成后,需将Runner注册到GitLab项目,使其能接收并执行CI/CD任务。
https://gitlab.com)和Token(用于注册)。sudo gitlab-runner register
按提示依次输入URL、Token、Runner描述(如“My Linux Runner”)、标签(如linux,test,用于筛选任务),最后选择shell作为执行环境(也可选docker、kubernetes等)。sudo gitlab-runner start)。3. 创建.gitlab-ci.yml文件
该文件是自动化测试的核心配置,需放在项目根目录下,定义阶段(Stages)、**任务(Jobs)**及执行逻辑。
stages:
- test # 定义测试阶段(需放在build等前置阶段之后)
unit_tests:
stage: test
script:
- echo "Running unit tests..."
- mvn test # 以Maven项目为例,执行单元测试
artifacts:
reports:
junit: target/surefire-reports/*.xml # 收集JUnit测试报告(GitLab会自动解析)
stages:定义CI/CD流程的阶段顺序(如build→test→deploy),任务按阶段依次执行。script:指定任务执行的命令(如运行测试脚本、安装依赖)。artifacts:收集任务产出的文件(如测试报告、构建产物),便于后续查看或传递给下一阶段。4. 编写测试脚本
根据项目技术栈编写测试用例,常见的测试框架包括:
src/test/java目录下。tests/目录下。.gitlab-ci.yml中配置对应运行环境)。test_job:
stage: test
script:
- pip install -r requirements.txt # 安装依赖
- pytest tests/ --junitxml=test-results.xml # 执行测试并生成JUnit报告
artifacts:
reports:
junit: test-results.xml # 收集测试报告
5. 触发自动化测试
将代码推送到GitLab仓库(如main分支),Runner会自动触发CI/CD管道,执行.gitlab-ci.yml中定义的测试任务。也可通过以下方式手动触发:
/test),通过GitLab的Merge Request Rules触发。6. 查看测试结果
测试执行完成后,进入GitLab项目的CI/CD → Jobs页面,找到对应的test任务,点击Details查看执行日志。若配置了artifacts(如JUnit报告),可点击Browse查看详细的测试结果(包括通过/失败的用例数、错误信息)。
7. 高级配置(可选)
python:3.9镜像运行Python测试):test_job:
image: python:3.9 # 使用指定镜像
stage: test
script:
- pip install -r requirements.txt
- pytest tests/
parallel参数将测试任务拆分为多个并行作业,提升执行效率(如将测试用例分组并行运行):test_job:
stage: test
parallel: 3 # 拆分为3个并行作业
script:
- echo "Running test subset $CI_NODE_INDEX"
- pytest tests/ -n auto # 使用Pytest的并行插件
cache参数缓存依赖文件(如Maven的target/目录、Python的pip缓存),减少重复下载时间:test_job:
stage: test
script:
- mvn test
cache:
key: ${CI_COMMIT_REF_SLUG} # 缓存键基于分支名
paths:
- target/ # 缓存Maven构建产物