在 Debian 上搭建 Jenkins 执行集成测试
一 环境准备与安装
sudo apt update && sudo apt install -y openjdk-11-jdkjava -versionwget -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.listsudo apt update && sudo apt install -y jenkinssudo systemctl enable --now jenkinssudo systemctl status jenkins二 安全与基础配置
三 创建集成测试流水线
pipeline {
agent any
tools {
jdk 'openjdk-11' // 与全局工具配置中的名称一致
maven 'maven-3' // 与全局工具配置中的名称一致
}
environment {
CI = true
}
stages {
stage('Checkout') {
steps { git branch: 'main', url: 'git@github.com:org/repo.git' }
}
stage('Build') {
steps { sh 'mvn -B -DskipTests clean package' }
}
stage('Unit & Integration Tests') {
steps {
sh 'mvn -B verify -Pintegration-tests'
// 若使用 JUnit,可配合 junit 步骤归档报告
// junit '**/target/surefire-reports/*.xml,**/target/failsafe-reports/*.xml'
}
post {
always {
// 归档测试与覆盖率报告(按项目实际路径调整)
archiveArtifacts artifacts: '**/target/*.log,**/target/*-reports/**', allowEmptyArchive: true
}
}
}
}
post {
success { echo 'Integration tests passed.' }
failure { echo 'Integration tests failed.' }
unstable { echo 'Tests were unstable.' }
}
}
pipeline {
agent any
environment {
PYTHONUNBUFFERED = '1'
PIP_CACHE_DIR = "${WORKSPACE}/.cache/pip"
}
stages {
stage('Checkout') {
steps { git branch: 'main', url: 'git@github.com:org/repo.git' }
}
stage('Install deps') {
steps { sh 'pip install -r requirements.txt' }
}
stage('Integration Tests') {
steps { sh 'pytest tests/integration --junitxml=reports/integration.xml' }
}
stage('Archive') {
steps { junit 'reports/integration.xml' }
}
}
}
四 触发策略与质量门禁
H/5 * * * *(每 5 分钟检查一次提交)。sonar-scanner 并配置项目属性。jacoco:report,并在 Job 中归档 **/target/site/jacoco/** 报告,结合阈值判断质量门禁。五 常见问题与排错要点
sudo ufw allow 8080/tcp 或云安全组已放行;必要时修改 /etc/default/jenkins 中的 HTTP_PORT 并重启服务。archiveArtifacts/junit 路径;确保测试框架输出到预期目录(如 target/surefire-reports)。