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構建產物