一、环境及插件配置
- Kubernetes --- K8s Pod 动态调度
- Allure --- Allure 测试报告展示
可以参考之前的文章:Jenkins实现持续集成接口自动化测试
二、 Jenkins 全局工具配置
以下在 Jenkins → Manage Jenkins → Global Tool Configuration 中完成。
1. Allure Commandline(必须)
- 找到 "Allure Commandline" 区域
- 点击 "新增 Allure Commandline"
- 名称:填 allure(任意名称均可)
- 勾选 "Install automatically"
- 来源选择 "From Maven Central"
- 版本:下拉选择 2.30.0(或最新版)
- 保存

2. Git
默认即可,无需额外配置。
三、配置流水线
1.登录jenkins,点击new item
2.选择创建流水线

3.配置流水线
- Definition:Pipeline script from SCM
- SCM:Git
- Repository URL:「你的 git 地址」
- Credentials:git 地址类型,比如 GitHub、gitlab 这些
- Branches to build:*/master
- Script Path:Jenkinsfile
- 其余默认,保存

四. Jenkinsfile 流水线文件编写
采用声明式 Pipeline 语法,agent 在 K8s 集群动态创建 Pod。
1. 流水线阶段
|----------------------|-----------------------------|
| Stage | 作用 |
| Checkout | 从 GitLab 拉取测试代码 |
| Install Dependencies | 创建 venv + pip install 依赖 |
| Run Tests | pytest 执行 + 通知 + chmod 修复权限 |
| Post Actions | Allure 报告 + 归档 + 清理 |
2.你的代码根目录下创建Jenkinsfile文件,示例(可以直接让 AI 帮你生成)
python
pipeline {
agent {
kubernetes {
yaml """
apiVersion: v1
kind: Pod
spec:
containers:
# Jenkins通信容器jnlp,内网提前预制镜像,无需外网(不用内网镜像的话,外网拉取需要翻墙,可能会拉不下来)
- name: jnlp
image: harbor.inner.com/public/jenkins-inbound-agent:latest
resources:
requests:
cpu: 100m
memory: 256Mi
# 自动化运行环境:Python运行容器
- name: python-runner
image: harbor.inner.com/public/python:3.10
command: ["sleep", "infinity"]
tty: true
envFrom:
- secretRef:
name: project-common-env
optional: true
"""
defaultContainer 'python-runner'
}
}
# 构建参数,可以在每次构建时,选择某个参数,让自动化更灵活
parameters {
choice(
name: 'ENVIRONMENT',
choices: ['TEST', 'DEV', 'PROD', 'XINING'],
description: '测试环境选择'
)
booleanParam(
name: 'SEND_EMAIL',
defaultValue: false,
description: '是否发送邮件通知'
)
booleanParam(
name: 'SEND_WECHAT',
defaultValue: true,
description: '是否发送企业微信通知'
)
}
environment {
TEST_ENV = "${params.ENVIRONMENT}"
SEND_EMAIL = "${params.SEND_EMAIL}"
SEND_WECHAT = "${params.SEND_WECHAT}"
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Install Dependencies') {
steps {
sh '''
python3 -m venv .venv
source .venv/bin/activate
pip install --no-cache-dir -r requirements.txt
'''
}
}
stage('Run Tests') {
steps {
sh '''
source .venv/bin/activate
echo "========================================="
echo " 环境: ${TEST_ENV}"
echo " 发送邮件: ${SEND_EMAIL}"
echo " 发送企业微信: ${SEND_WECHAT}"
echo " Python: $(python3 --version)"
echo " Java: $(java -version 2>&1 | head -1 || echo not found)"
echo " Allure: $(allure --version || echo not found)"
echo "========================================="
python3 run.py \
-env "${TEST_ENV}" \
--send-wechat "${SEND_WECHAT}" \
--send-email "${SEND_EMAIL}"
# 修复文件权限,确保 jnlp 能读取 python 容器生成的文件
chmod -R a+rw output/allure_result || true
'''
}
}
}
post {
always {
allure includeProperties: false,
results: [[path: 'output/allure_result']]
archiveArtifacts artifacts: 'output/**/*', allowEmptyArchive: true
cleanWs()
}
success {
echo "✅ 自动化流水线全部执行成功"
}
failure {
echo "❌ 流水线执行异常,构建失败"
}
}
}
五、推送代码,手动触发构建


六、构建失败问题排查思路
点击构建详情内的Console Output,复制里面报错内容给 AI,让 AI 帮你排查并解决

七、后续优化建议
-
- 构建自定义镜像:使用Dockerfile,将 Python+JDK+Allure+依赖一体化打包,消除 Install Dependencies 耗时
-
- 启用凭据注入:创建 Jenkins Credentials 后可将项目内的敏感数据,比如邮箱等存在环境变量里,避免硬编码在代码中
-
- PVC 缓存 venv:利用运维 PVC 缓存 .venv,避免每次重装依赖(跟第一条解决的是一样的问题)
-
- 定时构建:Build Triggers → Build periodically,如 H 8 * * 1-5
-
- GitLab Webhook:代码 push 自动触发构建
