1. 安装GitLab Runner
GitLab Runner是执行CI/CD测试任务的核心工具,需先在Debian系统上完成安装。常用方法是通过GitLab官方APT仓库安装:
curl -L --output /etc/apt/trusted.gpg.d/gitlab.asc https://packages.gitlab.com/gitlab/gitlab-runner/gpgkeyecho "deb https://packages.gitlab.com/gitlab/gitlab-runner/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab-runner.listsudo apt-get update && sudo apt-get install gitlab-runnersudo gitlab-runner register命令注册Runner,过程中需输入GitLab项目的URL(从项目Settings → CI/CD获取)和注册Token(同一位置获取)。2. 创建.gitlab-ci.yml配置文件
在项目根目录下创建.gitlab-ci.yml文件,定义CI/CD流水线的阶段(stages)和作业(jobs),是自动化测试的核心配置。以下是一个通用示例:
stages:
- test # 定义测试阶段
test_job:
stage: test # 关联到测试阶段
image: node:14 # 使用Node.js 14镜像(根据项目技术栈调整,如Python用python:3.9、Java用openjdk:11)
script:
- npm install # 安装依赖(Node.js项目示例)
- npm test # 执行测试(如Jest、Mocha等框架)
artifacts:
reports:
junit: test-results.xml # 生成JUnit格式测试报告(便于GitLab解析和展示)
image:指定测试环境的Docker镜像,确保环境一致性(如Python项目用python:3.9、Java用openjdk:11);script:定义测试执行的命令(如npm test、mvn test、pytest等);artifacts:可选,用于上传测试报告(如JUnit、HTML格式),方便在GitLab界面查看结果。3. 配置测试环境与脚本
image关键字指定测试环境的Docker镜像,避免本地环境差异导致的问题(如上述示例中的node:14)。若需多容器服务(如数据库),可使用services关键字,例如:test_job:
stage: test
image: node:14
services:
- postgres:13 # 启动PostgreSQL服务
variables:
POSTGRES_DB: test_db # 设置环境变量
POSTGRES_USER: test_user
POSTGRES_PASSWORD: test_pass
script:
- npm install
- npm test
script: mvn install && mvn test;script: pip install -r requirements.txt && pytest;script: npm install playwright && npx playwright install && npx playwright test。4. 触发自动化测试
将.gitlab-ci.yml文件推送到GitLab仓库的默认分支(如master或main),GitLab Runner会自动检测并执行配置的测试任务。也可通过以下方式触发:
CI/CD → Pipelines页面点击“Run pipeline”;Settings → CI/CD → Schedules中设置定时任务(如每天凌晨2点执行测试);Settings → CI/CD → Merge request pipelines中启用,当有合并请求时自动运行测试。5. 查看与管理测试结果
测试执行完成后,可在GitLab项目的CI/CD → Pipelines页面查看流水线状态(成功/失败/运行中)。点击具体流水线,进入Jobs页面可查看单个作业的详细日志(如测试输出、错误信息)。若配置了artifacts(如JUnit报告),还可点击Test reports标签查看可视化测试结果(如通过率、失败用例)。
注意事项
stages顺序(如build→test→deploy)和script内容;cache关键字缓存依赖(如npm install的结果),加速后续构建。