温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用Jenkins进行自动化测试

发布时间:2025-12-10 17:08:28 来源:亿速云 阅读:231 作者:小樊 栏目:编程语言

整体流程与准备

  • 安装与启动:在 Debian/Ubuntu 上安装 Java 11、添加 Jenkins 官方仓库 并安装,启动服务后访问 http://<服务器IP>:8080。首次解锁密码位于 /var/lib/jenkins/secrets/initialAdminPassword。
  • 必要插件:在 Manage Jenkins → Plugin Manager 安装 Pipeline、Git、JUnit、HTML Publisher、Allure、Credentials Binding、Docker 等插件。
  • 代码与流水线:将测试代码与 Jenkinsfile 纳入版本控制(推荐),便于复用与审计。
  • 测试框架示例:Java 项目用 JUnit/TestNG,Python 项目用 pytest/unittest,API 测试用 Newman,UI 测试用 Selenium,性能测试用 JMeter。

创建任务与流水线

  • 方式一 Freestyle 项目
    • 新建任务 → 选择 Freestyle project → 配置 Git 源码 → 在构建步骤执行命令(如 mvn test、pytest)→ 在“构建后操作”添加 Publish JUnit test result report(指定 target/surefire-reports/*.xml 或 reports/*.xml)与 HTML Publisher(指定报告目录)。
  • 方式二 Pipeline 项目(推荐)
    • 新建任务 → 选择 Pipeline → 定义 Jenkinsfile(可从 SCM 拉取)。
    • 最小示例(Python + pytest):
      pipeline {
        agent any
        stages {
          stage('Checkout') { steps { git 'https://github.com/example/repo.git' } }
          stage('Install')   { steps { sh 'pip3 install -r requirements.txt' } }
          stage('Test')      { steps { sh 'pytest tests/ --junitxml=reports/results.xml' } }
        }
        post {
          always {
            junit 'reports/results.xml'
            publishHTML(target: [reportDir: 'reports/html', reportFiles: 'index.html', reportName: 'HTML Report'])
          }
        }
      }
      
    • 运行方式:手动触发、定时触发、或 GitHub Webhook 触发(在仓库 Webhooks 配置 Payload URL: http:///github-webhook/,Jenkins 任务启用 GitHub hook trigger for GITScm polling)。

测试类型与命令示例

测试类型 工具与命令示例 报告与插件
单元测试(Java) mvn test 或 gradle test JUnit Plugin 收集并展示测试结果
API 测试 newman run collection.json -r junit,html JUnit/HTML 报告
UI 自动化(Web) mvn test -Dtest=UITestSuite(Selenium) Allure 或 HTML Publisher
性能测试 jmeter -n -t test.jmx -l result.jtl 可结合 HTML/图表插件归档分析
Python 单元/集成 pytest tests/ --junitxml=reports/results.xml JUnit Plugin 与 HTML Publisher
  • Allure 报告示例(Maven + Selenium):
    stage('UI Test') {
      steps { sh 'mvn test -Dtest=TestSuite' }
      post { always { allure includeProperties: false, jdk: '', results: [[path: 'target/allure-results']] } }
    }
    
  • 报告查看:构建页面 → Test Result(JUnit)、HTML Report(HTML Publisher)、或 Allure Report(Allure 插件)。

触发策略与通知

  • 触发策略
    • 定时构建:在 Pipeline 中使用 *cron('H 2 * * ') 实现每日 02:00 执行(H 表示哈希分散负载)。
    • 代码提交触发:配置 GitHub Webhook + Jenkins 任务启用 GitHub hook trigger,实现 Push 即构建。
  • 通知与质量门禁
    • 构建状态通知:可结合邮件或 Slack 插件在失败/恢复时告警。
    • 质量门禁:与 SonarQube 集成,在流水线中加入代码质量检查阶段,失败则阻断后续流程。

最佳实践与常见问题

  • 最佳实践
    • 将 Jenkinsfile 纳入代码仓库,采用 Pipeline as Code;使用 Credentials Binding 管理密钥;为关键阶段添加 retry(3) 提升稳定性;通过 agent { label ‘linux-slave’ } 使用分布式构建;在容器中运行测试(如 docker.image(‘python:3.9’).inside { sh ‘pytest’ })实现环境隔离与一致性。
  • 常见问题速解
    • Permission denied:为脚本添加执行权限(如 chmod +x your_script.sh)。
    • HTML 报告未显示:确认报告路径与插件一致,安装并启用 HTML Publisher Plugin,必要时在 Content Security Policy 中放宽策略以渲染报告。
    • 测试结果未归档:JUnit 报告路径配置错误是常见原因,确保与框架输出目录一致(如 target/surefire-reports/*.xml 或 reports/*.xml)。
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手