温馨提示×

Jenkins在CentOS上的自动化测试如何实现

小樊
39
2025-12-23 15:46:38
栏目: 智能运维

在 CentOS 上用 Jenkins 落地自动化测试

一 环境准备与安装

  • 安装 Java 11(Jenkins 2.361+ 建议使用 JDK 11 或更高版本):
    • sudo yum update -y
    • sudo yum install -y java-11-openjdk-devel
    • java -version
  • 添加 Jenkins 官方 YUM 源并安装:
    • sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
    • sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
    • sudo yum install -y jenkins
  • 启动并设置开机自启:
    • sudo systemctl daemon-reload
    • sudo systemctl start jenkins
    • sudo systemctl enable jenkins
  • 开放防火墙端口(默认 8080):
    • sudo firewall-cmd --permanent --add-port=8080/tcp
    • sudo firewall-cmd --reload
  • 获取初始管理员密码:
    • sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  • 访问 http://<服务器IP>:8080 完成解锁与初始化(安装推荐插件、创建管理员)。

二 安装必要插件与全局工具

  • 建议安装的插件:
    • Git plugin(源码拉取)
    • Pipeline(流水线即代码)
    • JUnit(测试报告解析)
    • HTML Publisher plugin(展示 HTML 报告)
    • Allure Plugin(美观的 Allure 报告)
    • Email Extension Plugin(邮件通知)
  • 全局工具配置(Manage Jenkins → Global Tool Configuration):
    • 配置 JDK(自动安装或指定路径)
    • 配置 Git(确保 git --version 可用)
    • 配置 Allure Commandline(下载并命名安装,如 allure-2.x)。

三 示例一 Python + pytest + Allure 的 Pipeline

  • 准备测试项目(示例结构):
    • your-repo/
      • tests/
      • requirements.txt
      • Jenkinsfile
  • requirements.txt 示例:
    • pytest
    • allure-pytest
  • Jenkinsfile 示例(声明式流水线):
    • pipeline { agent any environment { ALLURE_RESULTS = ‘allure-results’ ALLURE_REPORT = ‘allure-report’ } stages { stage(‘Checkout’) { steps { git url: ‘https://github.com/yourorg/your-repo.git’, branch: ‘main’ } } stage(‘Install Deps’) { steps { sh ‘pip3 install -r requirements.txt’ } } stage(‘Run Tests’) { steps { sh ‘’’ mkdir -p ${ALLURE_RESULTS} pytest tests/
      –alluredir=${ALLURE_RESULTS}
      –junitxml=report.xml ‘’’ } } } post { always { junit ‘report.xml’ allure([ includeProperties: false, jdk: ‘’, properties: [], reportBuildPolicy: ‘ALWAYS’, results: [[path: “${ALLURE_RESULTS}”]], report: “${ALLURE_REPORT}” ]) emailext( subject: ‘构建结果: ${BUILD_STATUS}’, body: ‘详情: ${BUILD_URL}’, to: ‘team@example.com’ ) } } }
  • 说明:
    • 构建后操作添加 Allure Report 并指向 allure-results 目录;JUnit 报告指向 report.xml
    • 邮件通知使用 Email Extension Plugin 的 emailext 步骤。

四 示例二 JMeter 接口自动化测试

  • 在 CentOS 安装 Apache JMeter(示例版本 5.4.3):
    • wget https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.4.3.tgz
    • tar -xzf apache-jmeter-5.4.3.tgz
    • sudo mv apache-jmeter-5.4.3 /usr/local/jmeter
  • 准备测试脚本:如 test.jmx
  • Pipeline 示例:
    • pipeline { agent any stages { stage(‘Checkout’) { steps { git url: ‘https://github.com/yourorg/your-repo.git’, branch: ‘main’ } } stage(‘Run JMeter’) { steps { sh ‘’’ /usr/local/jmeter/bin/jmeter -n
      -t test.jmx
      -l jmeter-results.jtl
      -j jmeter.log ‘’’ } } } post { always { junit ‘jmeter-results.jtl’ // JMeter 可输出 JUnit 兼容结果 } } }
  • 说明:
    • 非 GUI 模式运行(-n),-t 指定脚本,-l 输出结果,-j 输出日志;Jenkins 用 JUnit 插件展示结果。

五 触发策略与报告查看

  • 触发策略:
    • 定时构建(Pipeline 中使用 triggers):
      • triggers { cron(‘H 2 * * *’) } // 每天 2:00 左右执行
    • 代码提交触发:
      • 在 GitHub/GitLab 仓库设置 Webhook(Payload URL:http:///github-webhook/)
      • 在任务中勾选 GitHub hook trigger for GITScm polling
  • 报告与通知:
    • JUnit 报告:构建后操作选择 “Publish JUnit test result report”,指定 .xml 路径
    • HTML 报告:使用 HTML Publisher 插件发布 .html 报告
    • Allure 报告:安装 Allure 插件与命令行,构建后选择 Allure Report 并指向 allure-results
    • 邮件通知:使用 Email Extension Plugin 配置收件人、主题与内容模板
  • 常见问题排查:
    • 报告为空或路径错误:核对报告生成路径与“Results/Path”配置是否一致,检查工作空间权限
    • 插件安装慢或失败:可临时使用国内镜像源更新插件索引后重试
    • 构建并发与稳定性:限制并发构建数、定期清理旧构建、必要时扩展 Agent 节点

0