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系统使用curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash添加源,再用sudo yum install gitlab-runner安装。docker组(若使用Docker执行任务),避免权限问题。安装完成后,需将Runner注册到GitLab项目,使其能接收CI/CD任务:
sudo gitlab-runner register,按提示输入以下信息: http://your-gitlab-server,GitLab.com则为https://gitlab.com);Settings → CI/CD → Runners获取);linux-runner)和标签(如linux、docker,用于筛选任务);docker或shell,docker可确保环境一致性)。Runners页面,状态为active。该文件是自动化测试的核心,定义了CI/CD管道的阶段(stages)、**任务(jobs)**及执行逻辑。需在项目根目录创建,示例如下:
stages: - test # 定义测试阶段 unit_tests: stage: test image: maven:3.6.3-jdk-8 # 使用Maven镜像(适用于Java项目) script: - mvn install # 编译项目 - mvn test # 执行单元测试 artifacts: reports: junit: target/surefire-reports/test-results.xml # 生成JUnit格式测试报告(GitLab可解析) image:指定运行任务的Docker镜像(如Python项目用python:3.9,Node.js项目用node:16);script:定义任务执行的命令(如mvn test、npm test);artifacts:上传测试报告,方便在GitLab界面查看结果。根据项目技术栈编写测试用例,常见的测试框架包括:
pip install安装);src/test/java),确保script命令能正确执行。将代码推送到GitLab仓库(如git push origin main),GitLab会自动触发CI/CD管道:
.gitlab-ci.yml中的配置,依次执行stages下的任务;CI/CD → Pipelines查看实时状态(如running、success、failed);测试完成后,在GitLab项目页面CI/CD → Jobs中找到对应的测试任务(如unit_tests),点击Details可查看:
artifacts,可直接查看JUnit、Allure等格式的报告(如test-results.xml),包括通过率、失败用例详情。cache指令缓存依赖项(如Maven的target目录、Node.js的node_modules),减少重复下载时间。示例如下:cache: key: ${CI_COMMIT_REF_SLUG} # 按分支缓存 paths: - target/ # 缓存路径 parallel指令将测试任务拆分为多个子任务(如按测试类拆分),缩短执行时间。示例如下:unit_tests: stage: test script: mvn test parallel: 4 # 拆分为4个并行任务 docker镜像或docker:dind(Docker-in-Docker)服务,确保测试环境与开发环境一致,避免“在我机器上能跑”的问题。