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/gpgkey
echo "deb https://packages.gitlab.com/gitlab/gitlab-runner/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab-runner.list
sudo apt-get update && sudo apt-get install gitlab-runner
sudo gitlab-runner register
命令注冊Runner,過程中需輸入GitLab項目的URL(從項目Settings → CI/CD
獲?。┖妥訲oken(同一位置獲?。?。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
的結果),加速后續構建。