Jenkins在Linux环境下集成测试工具的通用流程与具体示例
在Linux系统(如Ubuntu、CentOS、Debian)上集成测试工具前,需先完成Jenkins的基础安装与配置:
sudo apt update && sudo apt install openjdk-11-jdk -ysudo yum install java-1.8.0-openjdk-devel -yjava -version(需显示Java版本信息)。wget -q -O - https://pkg.jenkins.io/debian/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 -y。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 jenkins -y。sudo systemctl start jenkins;设置开机自启:sudo systemctl enable jenkins。http://<服务器IP>:8080,通过/var/lib/jenkins/secrets/initialAdminPassword获取初始密码完成解锁,安装推荐插件(如Pipeline、Git)。Jenkins通过插件连接测试工具,常见插件包括:
Manage Jenkins→Manage Plugins→Available→搜索插件名称→点击Install without restart。根据测试工具类型,添加Execute shell(Linux命令)或Invoke top-level Maven targets(Maven项目)步骤,执行测试脚本:
# 安装pytest(若未安装)
pip install pytest
# 运行测试并生成JUnit格式报告(兼容Jenkins JUnit插件)
pytest tests/ --junit-xml=test-results.xml
# 安装Newman(Postman CLI)
npm install -g newman
# 运行集合并生成JUnit报告
newman run my_collection.json --reporters junit,html --reporter-junit-export=newman-results.xml
# 运行JMeter测试计划(非GUI模式),生成JTL格式结果
jmeter -n -t /path/to/test_plan.jmx -l /path/to/results.jtl -j /path/to/jmeter.log
# 使用Maven运行Selenium测试(需pom.xml配置Selenium依赖)
mvn clean test -Dtest=UITestSuite
配置完成后,点击Save保存任务。
测试执行后,需将结果转换为Jenkins可识别的格式并展示:
Post-build Actions→Add post-build action→选择Publish JUnit test result report,填写报告路径(如test-results.xml、target/surefire-reports/*.xml)。target/allure-results)。Post-build Actions→Add post-build action→选择Publish HTML reports,填写HTML报告路径(如newman-report.html、jmeter/results.html)。pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/your-repo/your-project.git' // 替换为实际仓库URL
}
}
stage('Run Tests') {
steps {
sh 'pip install -r requirements.txt' // 安装项目依赖(含pytest)
sh 'pytest tests/ --junit-xml=test-results.xml' // 运行测试并生成报告
}
}
}
post {
always {
junit 'test-results.xml' // 发布JUnit报告
}
success {
echo '✅ 单元测试通过'
}
failure {
echo '❌ 单元测试失败,请检查报告'
}
}
}
pipeline {
agent any
stages {
stage('Run JMeter Test') {
steps {
sh 'jmeter -n -t /usr/local/jmeter/scripts/load_test.jmx -l /usr/local/jmeter/results.jtl -j /usr/local/jmeter/jmeter.log'
}
}
}
post {
always {
junit '/usr/local/jmeter/results.jtl' // 发布JMeter JTL报告
}
success {
echo '✅ 性能测试完成'
}
failure {
echo '❌ 性能测试失败,请检查日志'
}
}
}
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/your-repo/ui-test-project.git'
}
}
stage('Run UI Tests') {
steps {
sh 'mvn clean test -Dtest=UITestSuite' // 使用Maven运行Selenium测试(生成Allure结果)
}
}
}
post {
always {
allure includeProperties: false, jdk: '', results: [[path: 'target/allure-results']] // 发布Allure报告
}
}
}
retry逻辑(如retry(3)),自动重试失败的测试阶段。H/5 * * * *每5分钟触发一次,或git hook在代码提交时触发),实现持续测试。