ubuntu

ubuntu下gitlab如何实现自动化测试

小樊
37
2025-10-31 21:28:06
栏目: 智能运维

Ubuntu下GitLab实现自动化测试的完整步骤

1. 安装GitLab Runner

GitLab Runner是执行CI/CD任务的代理,需先在Ubuntu服务器上安装。常用安装方式(以Ubuntu 22.04为例):

# 添加GitLab Runner官方GPG密钥和软件源
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

# 更新包列表并安装GitLab Runner
sudo apt-get update
sudo apt-get install gitlab-runner -y

安装完成后,可通过gitlab-runner --version验证是否成功。

2. 注册GitLab Runner

注册Runner以关联GitLab项目,需获取项目的Runner URLRegistration Token(在GitLab项目页面→Settings→CI/CD→Runners中查看)。

# 注册Runner(以Shell executor为例,适用于本地执行)
sudo gitlab-runner register \
  --url https://gitlab.com/ \  # 替换为你的GitLab实例URL
  --registration-token YOUR_TOKEN \  # 替换为项目中的Token
  --executor shell \  # 可选:docker、kubernetes等(根据需求选择)
  --description "Ubuntu GitLab Runner" \  # Runner描述
  --tag-list "ci,test" \  # Runner标签(用于匹配CI/CD配置中的tags)
  --run-untagged=false \  # 是否运行未打标签的Job
  --locked=false  # 是否锁定Runner仅用于特定项目

注册成功后,Runner会出现在GitLab项目的Runners列表中。

3. 创建.gitlab-ci.yml配置文件

在项目根目录下创建.gitlab-ci.yml文件,定义CI/CD流程(核心是stagesjobs)。以下是一个自动化测试的示例配置:

# 定义CI/CD流程的阶段(按顺序执行)
stages:
  - build
  - test
  - deploy

# 构建阶段:编译项目(以Maven项目为例)
build_job:
  stage: build
  script:
    - echo "Installing dependencies..."
    - mvn clean install -DskipTests  # 跳过测试,加快构建速度
  artifacts:
    paths:
      - target/*.jar  # 保存构建产物(供后续阶段使用)
    expire_in: 1 hour  # 产物过期时间

# 测试阶段:运行单元测试(以JUnit为例)
test_job:
  stage: test
  script:
    - echo "Running unit tests..."
    - mvn test  # 执行测试,生成JUnit报告
  artifacts:
    reports:
      junit: target/surefire-reports/*.xml  # 将测试报告上传至GitLab(可在UI中查看)

# 部署阶段:仅当测试通过后部署到生产环境(可选)
deploy_job:
  stage: deploy
  script:
    - echo "Deploying to production..."
    - scp target/*.jar user@server:/opt/app/  # 示例:将构建产物复制到服务器
  only:
    - master  # 仅当master分支有推送时触发
  when: on_success  # 仅在前面所有Job成功时执行

关键说明

4. 配置Runner执行Job

Runner会自动监听项目的CI/CD事件(如代码推送、合并请求),并根据.gitlab-ci.yml中的配置执行Job。

5. 查看测试结果

6. 高级优化(可选)

通过以上步骤,即可在Ubuntu环境下使用GitLab实现自动化测试,覆盖从代码提交到测试报告的全流程,提升开发效率和代码质量。

0
看了该问题的人还看了