在 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 示例:
- 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 节点。