Jenkins在Linux中如何实现自动化测试
导读:在 Linux 上使用 Jenkins 实现自动化测试 一 架构与准备 运行环境:在 Linux 上安装 JDK 11+ 与 Jenkins(可用系统包管理器或官方仓库安装),启动后用浏览器访问 http://服务器IP:8080 完成解...
在 Linux 上使用 Jenkins 实现自动化测试
一 架构与准备
- 运行环境:在 Linux 上安装 JDK 11+ 与 Jenkins(可用系统包管理器或官方仓库安装),启动后用浏览器访问 http://服务器IP:8080 完成解锁与初始化。为后续测试与报告展示,建议安装常用插件:Git、Maven Integration、JUnit、以及用于报告的 Allure 插件。整体流程包含:拉取代码 → 构建/安装依赖 → 执行测试 → 收集与展示报告 → 通知与归档。
二 两种常用落地方式
-
方式 A Docker 化流水线(推荐)
- 思路:在 Jenkins 容器内打通宿主机 Docker(挂载 /var/run/docker.sock 与 /usr/bin/docker),在 Pipeline 中基于项目依赖构建 Python 镜像,启动容器运行测试,结束后清理。
- 关键步骤与示例:
- 启动 Jenkins 容器(示例将宿主机 9999 映射到容器 8080,并以 root 运行以便调用宿主机 Docker)
- docker run -dit --name jenkins_test -p 9999:8080 -u root
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker jenkins/jenkins:alpine
- docker run -dit --name jenkins_test -p 9999:8080 -u root
- Pipeline 片段(检出代码 → 构建镜像 → 运行测试 → 归档报告)
- pipeline {
agent any
environment {
IMAGE = “test-py:${
env.BUILD_NUMBER}
”
REPORT_DIR = “reports”
}
stages {
stage(‘Checkout’) {
steps {
git ‘https://github.com/your/repo.git’ }
}
stage(‘BuildImage’) {
steps {
sh ‘docker build -t $IMAGE .’ }
}
stage(‘Test’) {
steps {
sh ‘’’
docker run --rm
-v $PWD:/workspace
-w /workspace
$IMAGE pytest tests/ --alluredir=$REPORT_DIR ‘’’ } } } post { always { archiveArtifacts artifacts: “$REPORT_DIR/**”, allowEmptyArchive: true allure([ includeProperties: false, jdk: ‘’, properties: [], reportBuildPolicy: ‘ALWAYS’, results: [[path: “$REPORT_DIR”]] ]) } } }
- pipeline {
agent any
environment {
IMAGE = “test-py:${
env.BUILD_NUMBER}
”
REPORT_DIR = “reports”
}
stages {
stage(‘Checkout’) {
steps {
git ‘https://github.com/your/repo.git’ }
}
stage(‘BuildImage’) {
steps {
sh ‘docker build -t $IMAGE .’ }
}
stage(‘Test’) {
steps {
sh ‘’’
docker run --rm
- 启动 Jenkins 容器(示例将宿主机 9999 映射到容器 8080,并以 root 运行以便调用宿主机 Docker)
- 说明:Docker 化可实现环境隔离与可重复执行;若需推送镜像到仓库,可在流水线中加入 docker push 步骤。
-
方式 B 直接在 Agent 上执行(无容器)
- 适用场景:已有稳定的 Linux 测试机/代理,直接安装 Python 3、pytest、Allure CLI 等依赖,在 Job 中执行脚本并收集报告。
- 关键步骤与示例:
- 安装依赖(示例)
- sudo apt-get update & & sudo apt-get install -y python3 python3-pip
- pip3 install -U pytest allure-pytest
- Freestyle Job 配置
- 源码管理:选择 Git,填写仓库与分支
- 构建步骤:执行 Shell
- pytest tests/ --alluredir=reports
- 构建后操作:
- 归档构件:reports/**(用于历史留存)
- 发布 Allure 报告(安装 Allure 插件后可用)
- 触发方式:可配置 轮询 SCM 或 定时构建,实现无人值守运行。
- 安装依赖(示例)
三 触发与报告
- 触发策略
- 代码变更触发:在 GitLab/GitHub 与 Jenkins 间配置 Webhook,实现 push/merge 即构建;Jenkins 侧安装对应插件(如 GitLab Plugin),并在任务里勾选 “Build when a change is pushed to GitLab/GitHub”。
- 定时触发:在任务配置中使用 Cron 表达式(如 H/30 * * * * 表示每 30 分钟)进行定时回归。
- 报告与质量门禁
- 单元测试/接口测试:使用 JUnit 报告插件收集与展示测试结果,便于趋势分析与失败定位。
- 接口/UI 可视化报告:使用 Allure 生成美观报告并归档与展示,结合历史趋势做质量评估。
四 实践要点与排错
- 无头与浏览器自动化
- Linux 服务器通常无界面。UI 自动化建议使用 Selenium 4 + Chrome/Chromium Headless 或 Playwright,不建议使用已弃用的 PhantomJS(Selenium 3 起不再支持)。
- Docker 权限与性能
- 若 Jenkins 运行在容器中并需调用宿主机 Docker,务必挂载 /var/run/docker.sock 与 /usr/bin/docker;注意容器以 root 运行的安全风险,生产可细化权限或使用 Docker-in-Docker。
- 报告与产物
- 确保测试框架输出到固定目录(如 reports/),并在 Jenkins 中配置归档与 Allure 发布;失败的构建也应保留日志与报告以便回溯。
- 触发器与网络
- Webhook 需保证 Jenkins 可被 Git 服务访问(公网/内网可达、正确 Secret/Token 与 CSRF 配置);内网环境可使用 内网域名或隧道。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Jenkins在Linux中如何实现自动化测试
本文地址: https://pptw.com/jishu/757218.html
