Linux Jenkins如何实现自动化测试
导读:Linux 上用 Jenkins 落地自动化测试的可执行方案 一 架构与准备 运行环境 安装 Java 11+(Jenkins 运行依赖),建议准备 Linux 服务器(物理机/虚拟机/云主机)。 可选:使用 Docker 快速部署...
Linux 上用 Jenkins 落地自动化测试的可执行方案
一 架构与准备
- 运行环境
- 安装 Java 11+(Jenkins 运行依赖),建议准备 Linux 服务器(物理机/虚拟机/云主机)。
- 可选:使用 Docker 快速部署 Jenkins 与测试环境,便于隔离与可移植。
- 安装与启动
- Debian/Ubuntu 示例:
- 安装 Java:
sudo apt update & & sudo apt install openjdk-11-jdk - 导入 Jenkins 仓库并安装:
wget -q -O - https://pkg.jenkins.io/debian-stable/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 sudo systemctl start jenkins & & sudo systemctl enable jenkins
- 安装 Java:
- Docker 快速启动(推荐):
docker volume create jenkins-data docker run -d --name jenkins \ -p 8080:8080 -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ jenkins/jenkins:lts-jdk11
- Debian/Ubuntu 示例:
- 首次访问与解锁
- 浏览器访问 http://< 服务器IP> :8080,按提示输入初始管理员密码(位于容器内日志或宿主机映射目录),完成插件安装与初始化。
二 插件与全局工具配置
- 必备插件
- Git Plugin:拉取代码
- Pipeline:流水线即代码
- JUnit Plugin:收集与展示 JUnit/TestNG 报告
- HTML Publisher Plugin:展示自定义 HTML 报告
- Email Extension Plugin:邮件通知
- 可选:Allure Plugin(美观的多语言测试报告)
- 全局工具配置(Manage Jenkins → Global Tool Configuration)
- 配置 JDK(自动安装或指定路径)
- 配置 Git(可执行文件路径)
- 配置 Python/Node.js/Maven 等语言与构建工具(按项目需要)
三 流水线示例与报告通知
-
示例一 Python + Pytest + Allure(推荐)
- 安装与配置
- 安装 Allure Commandline 工具(Global Tool Configuration),并在项目中生成 Allure 结果文件(如 JSON/XML)。
- Jenkinsfile
pipeline { agent any tools { nodejs 'node' python 'python3' } // 如用到 Node/Python 可在此指定 stages { stage('Checkout') { steps { git 'https://github.com/your/repo.git' } } stage('Install') { steps { sh 'pip install -r requirements.txt' } } stage('Test') { steps { sh 'pytest tests/ --alluredir=allure-results' } } } post { always { allure([ includeProperties: false, jdk: '', properties: [], reportBuildPolicy: 'ALWAYS', results: [[path: 'allure-results']] ]) emailext( subject: '构建结果: ${ BUILD_STATUS} ', body: '详情: ${ BUILD_URL} ', to: 'team@example.com' ) } } } - 构建后操作
- 在任务配置 → 构建后操作 添加 Allure Report,指定 Results 路径(如 allure-results)。
- 安装与配置
-
示例二 Java + Maven + JUnit
- Jenkinsfile
pipeline { agent any tools { maven 'Maven-3' jdk 'JDK-11' } stages { stage('Checkout') { steps { git 'https://github.com/your/java-repo.git' } } stage('Build & Test') { steps { sh 'mvn clean test' } } } post { always { junit '**/target/surefire-reports/*.xml' emailext( subject: '构建结果: ${ BUILD_STATUS} ', body: '详情: ${ BUILD_URL} ', to: 'team@example.com' ) } } } - 构建后操作
- 添加 Publish JUnit test result report,指定 XML 报告路径(如 target/surefire-reports/*.xml)。
- Jenkinsfile
四 触发策略与质量门禁
- 触发方式
- 定时构建(Cron)
triggers { cron('H 2 * * *') } // 每天 02:00 左右执行 - 代码推送触发
- GitHub:在仓库 Settings → Webhooks 添加 Payload URL(如 http:///github-webhook/),在任务中启用 GitHub hook trigger for GITScm polling。
- GitLab:安装 GitLab Plugin,在任务中勾选 Build when a change is pushed to GitLab,并配置 Secret token;在 GitLab 项目 Settings → Webhooks 填入 Jenkins 提供的 URL 与 Token。
- 定时构建(Cron)
- 质量门禁与可视化
- 使用 JUnit Plugin 收集测试结果,结合 Allure 或 HTML Publisher 展示趋势与详情。
- 在 Post-build Actions 中配置报告发布与归档,保证每次构建产出可追溯。
五 常见问题与最佳实践
- 报告样式丢失
- 使用 HTML Publisher 时,进入 Manage Jenkins → Script Console 执行:
并重启浏览器或清理缓存后重试(仅在受信网络中使用)。System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
- 使用 HTML Publisher 时,进入 Manage Jenkins → Script Console 执行:
- 容器化运行与权限
- Docker 运行 Jenkins 时,如需在容器内调用宿主机 Docker(例如构建/测试 Docker 镜像),可挂载 /var/run/docker.sock 与 /usr/bin/docker,并以合适用户运行容器(如 root 或具备相应组权限)。
- 环境一致性
- 优先使用 Docker 镜像封装测试依赖(如 Python/Node/Java 环境),减少“本机能跑、Jenkins 跑不了”的问题。
- 安全与可维护性
- 为 Webhook 配置 Secret token,按需开启 CSRF 保护;凭据使用 Jenkins Credentials 管理,避免明文。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux Jenkins如何实现自动化测试
本文地址: https://pptw.com/jishu/770184.html
