首页主机资讯Linux Jenkins如何实现自动化测试

Linux Jenkins如何实现自动化测试

时间2025-12-12 08:55:03发布访客分类主机资讯浏览601
导读:Linux 上用 Jenkins 落地自动化测试的可执行方案 一 架构与准备 运行环境 安装 Java 11+(Jenkins 运行依赖),建议准备 Linux 服务器(物理机/虚拟机/云主机)。 可选:使用 Docker 快速部署...

Linux 上用 Jenkins 落地自动化测试的可执行方案


一 架构与准备

  • 运行环境
    • 安装 Java 11+(Jenkins 运行依赖),建议准备 Linux 服务器(物理机/虚拟机/云主机)。
    • 可选:使用 Docker 快速部署 Jenkins 与测试环境,便于隔离与可移植。
  • 安装与启动
    • Debian/Ubuntu 示例:
      • 安装 Java:sudo apt update & & sudo apt install openjdk-11-jdk
      • 导入 Jenkins 仓库并安装:
        wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
        echo deb http://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
        sudo apt update &
            &
             sudo apt install jenkins
        sudo systemctl start jenkins &
            &
             sudo systemctl enable jenkins
        
    • Docker 快速启动(推荐):
      docker volume create jenkins-data
      docker run -d --name jenkins \
        -p 8080:8080 -p 50000:50000 \
        -v jenkins-data:/var/jenkins_home \
        jenkins/jenkins:lts-jdk11
      
  • 首次访问与解锁
    • 浏览器访问 http://< 服务器IP> :8080,按提示输入初始管理员密码(位于容器内日志或宿主机映射目录),完成插件安装与初始化。

二 插件与全局工具配置

  • 必备插件
    • Git Plugin:拉取代码
    • Pipeline:流水线即代码
    • JUnit Plugin:收集与展示 JUnit/TestNG 报告
    • HTML Publisher Plugin:展示自定义 HTML 报告
    • Email Extension Plugin:邮件通知
    • 可选:Allure Plugin(美观的多语言测试报告)
  • 全局工具配置(Manage Jenkins → Global Tool Configuration)
    • 配置 JDK(自动安装或指定路径)
    • 配置 Git(可执行文件路径)
    • 配置 Python/Node.js/Maven 等语言与构建工具(按项目需要)

三 流水线示例与报告通知

  • 示例一 Python + Pytest + Allure(推荐)

    • 安装与配置
      • 安装 Allure Commandline 工具(Global Tool Configuration),并在项目中生成 Allure 结果文件(如 JSON/XML)。
    • Jenkinsfile
      pipeline {
      
        agent any
        tools {
       nodejs 'node' python 'python3' }
       // 如用到 Node/Python 可在此指定
        stages {
      
          stage('Checkout') {
      
            steps {
       git 'https://github.com/your/repo.git' }
      
          }
      
          stage('Install') {
      
            steps {
       sh 'pip install -r requirements.txt' }
      
          }
      
          stage('Test') {
      
            steps {
       sh 'pytest tests/ --alluredir=allure-results' }
      
          }
      
        }
      
        post {
      
          always {
      
            allure([
              includeProperties: false,
              jdk: '',
              properties: [],
              reportBuildPolicy: 'ALWAYS',
              results: [[path: 'allure-results']]
            ])
            emailext(
              subject: '构建结果: ${
      BUILD_STATUS}
      ',
              body: '详情: ${
      BUILD_URL}
      ',
              to: 'team@example.com'
            )
          }
      
        }
      
      }
      
      
    • 构建后操作
      • 在任务配置 → 构建后操作 添加 Allure Report,指定 Results 路径(如 allure-results)。
  • 示例二 Java + Maven + JUnit

    • Jenkinsfile
      pipeline {
      
        agent any
        tools {
       maven 'Maven-3' jdk 'JDK-11' }
      
        stages {
      
          stage('Checkout') {
       steps {
       git 'https://github.com/your/java-repo.git' }
       }
          
          stage('Build &
       Test') {
       steps {
       sh 'mvn clean test' }
       }
      
        }
      
        post {
      
          always {
      
            junit '**/target/surefire-reports/*.xml'
            emailext(
              subject: '构建结果: ${
      BUILD_STATUS}
      ',
              body: '详情: ${
      BUILD_URL}
      ',
              to: 'team@example.com'
            )
          }
      
        }
      
      }
      
      
    • 构建后操作
      • 添加 Publish JUnit test result report,指定 XML 报告路径(如 target/surefire-reports/*.xml)。

四 触发策略与质量门禁

  • 触发方式
    • 定时构建(Cron)
      triggers {
       cron('H 2 * * *') }
            // 每天 02:00 左右执行
      
    • 代码推送触发
      • GitHub:在仓库 Settings → Webhooks 添加 Payload URL(如 http:///github-webhook/),在任务中启用 GitHub hook trigger for GITScm polling
      • GitLab:安装 GitLab Plugin,在任务中勾选 Build when a change is pushed to GitLab,并配置 Secret token;在 GitLab 项目 Settings → Webhooks 填入 Jenkins 提供的 URL 与 Token。
  • 质量门禁与可视化
    • 使用 JUnit Plugin 收集测试结果,结合 AllureHTML Publisher 展示趋势与详情。
    • Post-build Actions 中配置报告发布与归档,保证每次构建产出可追溯。

五 常见问题与最佳实践

  • 报告样式丢失
    • 使用 HTML Publisher 时,进入 Manage Jenkins → Script Console 执行:
      System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
      
      并重启浏览器或清理缓存后重试(仅在受信网络中使用)。
  • 容器化运行与权限
    • Docker 运行 Jenkins 时,如需在容器内调用宿主机 Docker(例如构建/测试 Docker 镜像),可挂载 /var/run/docker.sock/usr/bin/docker,并以合适用户运行容器(如 root 或具备相应组权限)。
  • 环境一致性
    • 优先使用 Docker 镜像封装测试依赖(如 Python/Node/Java 环境),减少“本机能跑、Jenkins 跑不了”的问题。
  • 安全与可维护性
    • 为 Webhook 配置 Secret token,按需开启 CSRF 保护;凭据使用 Jenkins Credentials 管理,避免明文。

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


若转载请注明出处: Linux Jenkins如何实现自动化测试
本文地址: https://pptw.com/jishu/770184.html
Jenkins在Linux上的日志管理如何操作 Jenkins在Linux上如何实现版本控制

游客 回复需填写必要信息