Ubuntu环境下GitLab自动化测试实施方法
GitLab Runner是执行CI/CD作业的核心组件,需先在Ubuntu服务器上安装。常用包管理器安装(以Ubuntu 22.04为例):
# 添加GitLab Runner仓库并安装
curl -L --output gitlab-runner.deb https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh && \
sudo dpkg -i gitlab-runner.deb && \
sudo apt-get update && \
sudo apt-get install gitlab-runner
安装完成后,启动Runner服务并设置开机自启:
sudo systemctl start gitlab-runner && \
sudo systemctl enable gitlab-runner
注册Runner与GitLab项目绑定,获取项目URL和Token(路径:GitLab项目→Settings→CI/CD→Runners):
sudo gitlab-runner register
按提示输入信息:
https://gitlab.com)ubuntu-test-runner)ubuntu、docker,用于筛选作业)docker或shell,docker可实现环境隔离)在项目根目录创建.gitlab-ci.yml,定义测试流程的核心逻辑(以Java+Maven项目为例):
stages:
- build
- test
- report
variables:
MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository"
cache:
paths:
- .m2/repository/ # 缓存Maven依赖,加速后续构建
build_job:
stage: build
script:
- echo "Compiling code..."
- mvn clean compile
artifacts:
paths:
- target/ # 传递编译产物给后续阶段
test_job:
stage: test
script:
- echo "Running unit tests..."
- mvn test
artifacts:
reports:
junit: target/surefire-reports/*.xml # 生成JUnit格式测试报告
deploy_job:
stage: deploy
script:
- echo "Deploying to production..."
only:
- main # 仅main分支触发部署
根据项目技术栈编写测试用例,例如:
src/test/java目录;tests/目录;__tests__/目录。为提升测试结果可读性,可将测试报告集成到GitLab界面。例如,JUnit报告(适用于Java/Maven):
test_job:
stage: test
script:
- mvn test
artifacts:
reports:
junit: target/surefire-reports/*.xml # 自动解析并展示在CI/CD界面
Playwright测试报告(适用于Web端):
test_with_playwright:
stage: test
image: mcr.microsoft.com/playwright/python:v1.42.1 # 使用Playwright官方镜像
script:
- pip install playwright
- playwright install
- pytest tests/ --headed --timeout=30000 # 执行测试
artifacts:
paths:
- playwright-report/ # 保存HTML报告
when: always # 无论测试通过与否都上传报告
将代码推送到GitLab仓库(如main分支),Runner会自动检测.gitlab-ci.yml并执行定义的作业。也可通过Webhook实现实时触发(路径:项目→Settings→Webhooks)。
在GitLab项目页面→CI/CD→Pipelines,点击对应流水线可查看:
test_job)查看详细日志;parallel关键字拆分测试任务,缩短执行时间;test_job:
stage: test
script:
- echo "Running tests in parallel..."
parallel: 4 # 拆分为4个并行任务
test_job:
stage: test
image: python:3.9 # 使用指定Python版本的Docker镜像
script:
- pip install -r requirements.txt
- pytest
cache:
key: ${CI_COMMIT_REF_SLUG} # 按分支缓存
paths:
- node_modules/ # Node.js依赖
- .m2/repository/ # Maven依赖
通过以上步骤,可在Ubuntu环境下实现GitLab自动化测试,覆盖代码提交→构建→测试→报告的全流程,提升开发效率和代码质量。