Ubuntu Jenkins生成测试报告的完整流程
安装Jenkins:在Ubuntu服务器上执行以下命令安装Jenkins(需提前安装Java 11+):
sudo apt update
sudo apt install openjdk-11-jdk
wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt update
sudo apt install jenkins
sudo systemctl start jenkins
sudo systemctl enable jenkins
访问http://<服务器IP>:8080,输入初始管理员密码(位于/var/lib/jenkins/secrets/initialAdminPassword)完成初始化。
安装必要插件:
进入Jenkins主页→新建任务→输入项目名称→选择Pipeline→点击确定。
在Pipeline配置项中,选择Pipeline script from SCM(推荐,便于版本控制),设置以下参数:
Jenkinsfile路径(如Jenkinsfile)。在项目根目录创建Jenkinsfile,定义构建→测试→发布报告的流水线流程。以下是常见测试类型的配置示例:
适用于Java项目(使用Maven/Gradle)或Python项目(使用unittest框架):
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git url: 'https://github.com/your-repo/your-project.git'
}
}
stage('Build') {
steps {
sh 'mvn clean package' // Java项目:Maven构建
// sh 'gradle build' // 或Gradle构建
// sh 'python3 setup.py install' // Python项目:安装依赖
}
}
stage('Test') {
steps {
sh 'mvn test' // Java项目:运行JUnit测试
// sh 'python3 -m unittest discover tests/' // Python项目:运行单元测试
}
}
}
post {
always {
// 发布JUnit测试报告(匹配**/target/surefire-reports/*.xml或**/test-reports/*.xml)
junit '**/test-reports/*.xml'
}
}
}
适用于Python/Selenium项目,生成Allure格式的可视化报告:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git url: 'https://github.com/your-repo/selenium-project.git'
}
}
stage('Install Dependencies') {
steps {
sh 'pip3 install -r requirements.txt' // 安装Selenium、Allure-Python等依赖
}
}
stage('Run UI Tests') {
steps {
sh 'pytest tests/ --alluredir=./target/allure-results' // 生成Allure结果文件
}
}
}
post {
always {
// 发布Allure测试报告
allure includeProperties: false,
jdk: '',
results: [[path: './target/allure-results']]
}
}
}
适用于Postman编写的API测试用例,使用Newman CLI运行:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git url: 'https://github.com/your-repo/api-tests.git'
}
}
stage('Run API Tests') {
steps {
sh 'newman run collections/api-tests.json --reporters junit --reporter-junit-export ./test-reports/api-report.xml' // 生成JUnit格式报告
}
}
}
post {
always {
junit '**/test-reports/api-report.xml' // 发布JUnit报告
}
}
}
若测试脚本生成了HTML报告(如Selenium的report.html),使用HTML Publisher Plugin发布:
pipeline {
agent any
stages {
stage('Run Tests') {
steps {
sh 'python3 tests/run_tests.py' // 假设脚本生成了test-reports/report.html
}
}
}
post {
always {
publishHTML(
target: [
allowMissing: false,
alwaysLinkToLastBuild: true,
keepAll: true,
reportDir: 'test-reports', // 报告所在目录(相对于工作空间)
reportFiles: 'report.html', // 报告文件名
reportName: 'Selenium Test Report' // 报告显示名称
]
)
}
}
}
junit步骤中的路径一致(如**/test-reports/*.xml)。allure命令可在终端执行(allure --version)。System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")。