首页主机资讯Linux GitLab如何进行自动化测试

Linux GitLab如何进行自动化测试

时间2025-12-13 00:46:04发布访客分类主机资讯浏览1035
导读:Linux GitLab自动化测试实操指南 一 架构与Runner部署 在 Linux 服务器上安装 GitLab Runner,可基于 Docker 或 Shell 执行器;安装完成后在项目的 Settings → CI/CD → Ru...

Linux GitLab自动化测试实操指南

一 架构与Runner部署

  • Linux 服务器上安装 GitLab Runner,可基于 DockerShell 执行器;安装完成后在项目的 Settings → CI/CD → Runners 获取 URLRegistration Token 进行注册。
  • 常用安装方式(示例):
    • Debian/Ubuntu:
      • 添加仓库并安装: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 -y gitlab-runner
    • RHEL/CentOS:
      • 使用官方脚本安装:curl https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bash sudo yum install -y gitlab-runner
  • 注册示例(按需选择 executor:docker/shell):
    • sudo gitlab-runner register --url < GitLab_URL> --registration-token --executor docker --docker-image --tag-list --run-untagged false --locked false
  • 启动服务:sudo gitlab-runner start(确保开机自启与权限正确)。

二 定义流水线 .gitlab-ci.yml

  • 在项目根目录创建 .gitlab-ci.yml,通过 stages 定义阶段,在 script 中编写测试命令;推送代码后会自动触发流水线。
  • 示例(多阶段与产物留存):
    • stages:
      • build
      • test
    • build:
      • stage: build
      • script:
        • echo “Building…”
        • mvn package
      • artifacts:
        • paths:
          • target/*.jar
    • test:
      • stage: test
      • script:
        • echo “Running unit tests…”
        • mvn test
  • 常用增强:
    • 使用 Docker 镜像 保证环境一致性(如 node:latest、maven:3-openjdk-17)。
    • 通过 artifacts.reports.junit 上传 JUnit XML 报告,在 GitLab 界面展示测试概览与失败定位。

三 典型测试场景配置

  • Java + Maven
    • test:
      • stage: test
      • script:
        • mvn test
      • artifacts:
        • reports:
          • junit: target/surefire-reports/TEST-*.xml
  • Node.js + Jest/Mocha
    • test:
      • stage: test
      • image: node:18
      • script:
        • npm ci
        • npm test – --ci --reporters=jest-junit
      • artifacts:
        • reports:
          • junit: reports/junit.xml
  • Python + Pytest
    • test:
      • stage: test
      • image: python:3.11
      • script:
        • pip install -r requirements.txt pytest pytest-xdist
        • pytest tests/ --junitxml=report.xml
      • artifacts:
        • reports:
          • junit: report.xml
  • 端到端 UI(Playwright 示例)
    • test:e2e:
      • stage: test
      • image: mcr.microsoft.com/playwright/python:latest
      • script:
        • npm install -D playwright
        • npx playwright install --with-deps
        • npx playwright test --reporter=junit,html
      • artifacts:
        • paths:
          • playwright-report/
        • reports:
          • junit: results.xml
  • SeleniumBase(Headless Chrome 示例)
    • 准备阶段安装浏览器与驱动,测试阶段以 Xvfb 或无头模式运行,并生成 JUnit/HTML 报告与失败重试:
      • prepare:
        • stage: prepare
        • image: python:3.9-slim
        • before_script:
          • apt-get update & & apt-get install -y --no-install-recommends curl unzip wget xvfb libglib2.0-0 libnss3 libgconf-2-4 libfontconfig1
        • script:
          • pip install -U pip
          • pip install -r requirements.txt
          • seleniumbase install chromedriver
      • run_tests:
        • stage: test
        • image: python:3.9-slim
        • before_script:
          • export DISPLAY=:99.0
          • Xvfb :99 -screen 0 1920x1080x24 > /dev/null 2> & 1 &
          • sleep 3
        • script:
          • pytest examples/ --browser=chrome --headless=true --junitxml=report.xml --html=report.html --self-contained-html --reruns 2 --reruns-delay 5
        • artifacts:
          • when: always
          • paths:
            • report.xml
            • report.html
            • screenshots/
            • logs/
          • reports:
            • junit: report.xml。

四 优化与质量门禁

  • 缓存依赖加速构建:
    • cache:
      • paths:
        • .cache/pip
        • node_modules/
  • 并行与切片:
    • test:
      • parallel: 4
      • script: pytest tests/ -n 4
  • 失败重试与稳定性:
    • script:
      • pytest --reruns 2 --reruns-delay 5
  • 产物留存与可追溯:
    • artifacts:
      • paths:
        • target/
        • reports/
        • logs/
        • screenshots/
      • reports:
        • junit: “**/TEST-*.xml”
      • expire_in: 7 days
  • 环境隔离与一致性:优先使用 Docker 镜像;UI 测试使用 HeadlessXvfb,并固定浏览器与驱动版本。

五 触发与结果查看

  • 触发方式:每次 push/merge request 会自动触发;也可在 CI/CD → Pipelines 手动运行或重试。
  • 查看结果:在 Pipelines → Jobs 查看日志;在 Tests 选项卡查看 JUnit 报告摘要、失败用例与堆栈;HTML 报告与截图等可通过 artifacts 下载或页面展示。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux GitLab如何进行自动化测试
本文地址: https://pptw.com/jishu/771135.html
Linux系统中FetchLinux命令详解 FetchLinux命令行工具怎么用

游客 回复需填写必要信息