GitLab在Linux环境下实现自动化测试的完整流程
GitLab Runner是执行CI/CD任务的代理工具,需先在Linux系统上安装。
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt-get install gitlab-runner
以CentOS/RHEL为例,使用yum安装:curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash
sudo yum install gitlab-runner
gitlab-runner --version确认版本信息,确保安装成功。安装完成后,需将Runner注册到GitLab项目,使其能接收并执行CI/CD任务。
https://gitlab.com)和Token(唯一标识)。linux-runner)、标签(如linux、test):sudo gitlab-runner register
注册成功后,Runner会自动启动并关联到项目。在项目根目录下创建.gitlab-ci.yml文件,定义CI/CD流水线的阶段(stages)和任务(jobs),是自动化测试的核心配置。
test阶段,使用Maven运行Java单元测试,并将测试报告上传至GitLab:stages:
- test # 定义测试阶段
unit_tests:
stage: test # 关联到test阶段
image: maven:3.6.3-jdk-8 # 使用Maven镜像
script:
- mvn install # 编译项目
- mvn test # 执行单元测试
artifacts:
reports:
junit: target/surefire-reports/test-results.xml # 上传JUnit测试报告
stages:定义流水线阶段顺序(如build→test→deploy),任务按阶段依次执行。image:指定运行任务的Docker镜像(如maven、node、playwright),确保环境一致性。script:定义任务执行的命令(如mvn test、pytest)。artifacts:上传测试报告(如JUnit、Playwright),方便在GitLab界面查看结果。根据项目技术栈开发测试用例,常见的测试类型及工具:
npm install playwright
npx playwright install # 安装浏览器驱动
然后在.gitlab-ci.yml中添加Playwright测试任务:playwright_tests:
stage: test
image: playwright/pytest:stable # 使用Playwright官方镜像
script:
- pip install playwright # 安装Python版Playwright
- playwright install # 安装浏览器
- pytest --headless --timeout=30000 # 无头模式运行测试
artifacts:
paths:
- playwright-report/ # 上传Playwright测试报告
expire_in: 1 week # 报告保留1周
main分支)或创建Merge Request时,GitLab会自动触发CI/CD流水线,执行.gitlab-ci.yml中定义的任务。cache配置缓存依赖项(如Maven的target目录、Node.js的node_modules),减少重复下载时间:cache:
key: ${CI_COMMIT_REF_SLUG} # 按分支缓存
paths:
- target/ # Maven缓存目录
- node_modules/ # Node.js缓存目录
parallel关键字将测试任务拆分为多个并行作业,提升执行效率(适用于大型测试套件):test_job:
stage: test
script: ./run-tests.sh # 假设脚本将测试拆分为多个子任务
parallel: 4 # 拆分为4个并行作业
.gitlab-ci.yml中通过$变量名引用,避免硬编码。通过以上步骤,即可在Linux环境下通过GitLab实现自动化测试,覆盖从代码提交到测试报告的全流程,提升开发效率和软件质量。