如何利用Jenkins和Ubuntu搭建自动化测试环境,实现高效测试流程?

更新于
2026-08-11 09:23:20
5阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

一、为什么要在 Ubuntu 上使用 Jenkins 搭建自动化测试环境?

痛点一:手工执行测试耗时且易出错——每次提交代码后都需要手动跑一遍回归,导致交付周期被拖慢。

痛点二:本地与 CI 环境不一致——开发机器的依赖版本和 CI 服务器不同。常出现“本地环境,实现高效测试流程?" src="/img01/1225844108。2440022351&fm=253&fmt=auto&app=120&f=jpg"/>

痛点三:缺乏统一的质量门禁——没有统一的建立、单元测试、代码检查流程,质量把控散乱。

使用 Jenkins + Ubuntu 可以实现:

  • 全自动触发建立和测试,省去手动操作。
  • 统一运行时环境,消除 “环境漂移”。
  • 及报告。

二、环境准备与常用软件安装

1. 更新程序并安装 JDK 与 Maven

# 更新包索引
sudo apt update
# 安装 OpenJDK 11
sudo apt install -y openjdk-11-jdk
# 验证 Java 安装
java -version
# 安装 Maven
sudo apt install -y maven
# 验证 Maven 安装
mvn -version

2. 安装 Docker

Docker 能让你在同一台机器上隔离不同项目的依赖,避免冲突。

# 安装 Docker Engine
sudo apt install -y docker.io
# 添加当前使用者到 docker 组。以免每次都使用 sudo
sudo usermod -aG docker $USER
newgrp docker
# 验证 Docker 是否可用
docker run --rm hello-world

3. 安装 Jenkins

# 导入 Jenkins 公钥
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
# 添加 Jenkins 软件源
echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
# 更新索引并安装 Jenkins
sudo apt update
sudo apt install -y jenkins
# 启动并设置开机自启
sudo systemctl start jenkins
sudo systemctl enable jenkins
# 检查服务状态
sudo systemctl status jenkins

三、首次登录与基础配置

打开浏览器访问 http://your_server_ip:8080按照提示输入初始管理员密码:

如何利用Jenkins和Ubuntu搭建自动化测试环境,实现高效测试流程?
# 获取默认密码
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

再看完成以下步骤,

  • 安装推荐插件。话说回来,
  • 创建第一个管理员账户。
  • 在「程序设置」里配置全局工具方法,确保「工具」页面能找到已安装的版本。其实,

四、关键插件安装与凭证配置

1. 必装插件列表

  • Git Plugin: 拉取源码。
  • Pipeline Plugin: 编写声明式流水线。
  • Maven Integration Plugin**: 支持 Maven 建立。
  • *Docker Pipeline* **: 在容器中执行建立/测试。
  • *JUnit* 或 *Allure* 插件**: 可视化测试报告。

2. 添加凭证

在「凭证」→「程序」→「全局域」下添加:

  • Git SSH Key / Username‑Password**:用于克隆私有仓库。
  • Docker Registry 登录信息**。
  • Selenium / ChromeDriver 下载地址或授权 token**。

五、编写 Jenkinsfile 实现完整流水线

a) 项目结构示例

.
├── src/
│ └── main/
├── pom.xml # Maven 项目文件
├── build.sh # 建立脚本
└── run-tests.sh # 测试执行脚本
└── Jenkinsfile # 声明式流水线定义文件

b) 示例 Jenkinsfile

// Declarative Pipeline 示例
pipeline {
agent any // 在任意可用节点上执行
environment {
MEN_HOME = "/usr/share/maven"
PATH = "${env.MEN_HOME}/bin:${env.PATH}"
}
stages {
stage {
steps {
git url: ':your/repo.git'。credentialsId: 'git-ssh-key',branch: 'main'
}
}
stage {
steps {
sh './build.sh' // 自定义建立脚本或直接使用 mvn 命令
}
}
stage {
steps {
sh './run-tests.sh' // 执行单元/集成测试脚本
}
post {
always {
junit '**/target/surefire-reports/*.xml' // 收集 JUnit 报告
}
}
}
stage {
steps {
archiveArtifacts artifacts: '**/target/*.jar',fingerprint: true
}
}
stage {
steps {
// 若使用 Allure 插件,可改为 allure
publishHTML(target:)
}
}
}
post {
success { echo '✅ 流水线成功完成!' }
failure { echo '❌ 流水线失败,请检查日志。' }
}
}

六、准备建立与测试脚本

a) build.sh

#!/bin/bash
set -e
echo "🔧 开始建立项目..."
# 使用 Maven 编译并打包,如果是其他语言请自行替换相应命令
mvn clean package -DskipTests
echo "✅ 建立完成。"

b) run-tests.sh

#!/bin/bash
set -e
echo "🚀 正在运行自动化测试..."
# 示例:运行 Maven 单元测试,也可以改为 pytest / npm test 等命令
mvn test
echo "✅ 测试执行完毕。"

确保两个脚本都有执行权限:

# 为脚本添加可执行权限
chmod +x build.sh run-tests.sh

七、创建流水线任务并触发建立

  1. 在 Jenkins 首页点击「新建任务」。 • 输入任务名称,例如 "My-AutoTest-Pipeline". • 选择「Pipeline」类型,点击「确定」。
  2. 在「流水线」配置页选择「Pipeline script from SCM」。• SCM 类型选择 Git。• 填写仓库 URL 与凭证 ID。• 分支填写 "*/main". • 脚本方法填写 "Jenkinsfile".
  3. 保存后返回任务页面点击 **Build Now** 即可手动触发;也可以在「触发器」中勾选 「GitHub hook trigger for GITScm」 或者 「定时建立」自动运行触发。
  4. 建立完成后在任务页面的「建立历史」中点击对应编号,即可查看:
    • - 控制台输出了解每一步日志。
    • - JUnit 报告或 Allure 报告展示详细的用例通过率与错误堆栈。

八、常见问题排查 & 调整建议

a) 建立卡在 Checkout 步骤?

  • 确认 Git 凭证正确且拥有仓库读取权限;检查防火墙是否阻止 SSH/HTTPS 出站流量。
  • If using SSH keys,ensure public key is added to Git server’s authorized_keys.

b) 测试阶段报错找不到依赖或驱动?

  • Maven 本地仓库缓存可能不完整,尝试先在服务器上手动运行 MEN_OPTS="-Dmaven.repo.local=/path/to/.m2/repository" mvn clean install -U .
  • If UI 自动化,需要 Chrome 与 ChromeDriver 对齐。可在 pipeline 中加入下载最新驱动的步骤:
  • # 示例:下载匹配当前 Chrome 的驱动
    CHROME_VERSION=$
    wget -q "https://chromedriver.storage.googleapis.com/${CHROME_VERSION}/chromedriver_linux64.zip"
    unzip chromedriver_linux64.zip -d $HOME/bin
    chmod +x $HOME/bin/chromedriver
    export PATH=$HOME/bin:$PATH
    

b) 建立速度慢?

  • LFS这方面。开启 Docker 缓存层或使用 Maven 本地仓库挂载到容器中,加速依赖拉取。
  • AWS/ECR 私有镜像加速:在 Dockerfile 中指定国内镜像源。
  • Caching:在 pipeline 中使用 `stash` / `unstash` 或 `cache` 步骤保存编译产物,以免重复编译。

d) 想要把结果发送给团队?

Add a post‑step:

// 邮件通知示例
post {
always {
mail to: '',subject: " Build ${currentBuild.currentResult}"。body: "查看详情请访问 ${env.BUILD_URL}"
}
}

九、 – 从手工到全自动的跃迁

每一步都不再依赖人工干预,可以解决了前文提到的“三大痛点”。后续可以继续 :

  • 说到*持续部署*。加入 Docker 镜像打包并推送至私有仓库,实现“一键上线”。
  • *质量门禁*的观点是,接入 SonarQube 静态分析。在 pipeline 中设置 “质量阈值” 阶段阻断不合格代码。
  • *多分支策略*:为 feature / develop / release 分支分别配置不同的流水线,实现蓝绿部署或灰度发布。

🚀 掌握了这些。你就可以把繁琐的手工测试彻底抛弃,让交付更快、更稳、更安全!

标签:Ubuntu

一、为什么要在 Ubuntu 上使用 Jenkins 搭建自动化测试环境?

痛点一:手工执行测试耗时且易出错——每次提交代码后都需要手动跑一遍回归,导致交付周期被拖慢。

痛点二:本地与 CI 环境不一致——开发机器的依赖版本和 CI 服务器不同。常出现“本地环境,实现高效测试流程?" src="/img01/1225844108。2440022351&fm=253&fmt=auto&app=120&f=jpg"/>

痛点三:缺乏统一的质量门禁——没有统一的建立、单元测试、代码检查流程,质量把控散乱。

使用 Jenkins + Ubuntu 可以实现:

  • 全自动触发建立和测试,省去手动操作。
  • 统一运行时环境,消除 “环境漂移”。
  • 及报告。

二、环境准备与常用软件安装

1. 更新程序并安装 JDK 与 Maven

# 更新包索引
sudo apt update
# 安装 OpenJDK 11
sudo apt install -y openjdk-11-jdk
# 验证 Java 安装
java -version
# 安装 Maven
sudo apt install -y maven
# 验证 Maven 安装
mvn -version

2. 安装 Docker

Docker 能让你在同一台机器上隔离不同项目的依赖,避免冲突。

# 安装 Docker Engine
sudo apt install -y docker.io
# 添加当前使用者到 docker 组。以免每次都使用 sudo
sudo usermod -aG docker $USER
newgrp docker
# 验证 Docker 是否可用
docker run --rm hello-world

3. 安装 Jenkins

# 导入 Jenkins 公钥
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
# 添加 Jenkins 软件源
echo deb https://pkg.jenkins.io/debian-stable binary/ | sudo tee /etc/apt/sources.list.d/jenkins.list
# 更新索引并安装 Jenkins
sudo apt update
sudo apt install -y jenkins
# 启动并设置开机自启
sudo systemctl start jenkins
sudo systemctl enable jenkins
# 检查服务状态
sudo systemctl status jenkins

三、首次登录与基础配置

打开浏览器访问 http://your_server_ip:8080按照提示输入初始管理员密码:

如何利用Jenkins和Ubuntu搭建自动化测试环境,实现高效测试流程?
# 获取默认密码
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

再看完成以下步骤,

  • 安装推荐插件。话说回来,
  • 创建第一个管理员账户。
  • 在「程序设置」里配置全局工具方法,确保「工具」页面能找到已安装的版本。其实,

四、关键插件安装与凭证配置

1. 必装插件列表

  • Git Plugin: 拉取源码。
  • Pipeline Plugin: 编写声明式流水线。
  • Maven Integration Plugin**: 支持 Maven 建立。
  • *Docker Pipeline* **: 在容器中执行建立/测试。
  • *JUnit* 或 *Allure* 插件**: 可视化测试报告。

2. 添加凭证

在「凭证」→「程序」→「全局域」下添加:

  • Git SSH Key / Username‑Password**:用于克隆私有仓库。
  • Docker Registry 登录信息**。
  • Selenium / ChromeDriver 下载地址或授权 token**。

五、编写 Jenkinsfile 实现完整流水线

a) 项目结构示例

.
├── src/
│ └── main/
├── pom.xml # Maven 项目文件
├── build.sh # 建立脚本
└── run-tests.sh # 测试执行脚本
└── Jenkinsfile # 声明式流水线定义文件

b) 示例 Jenkinsfile

// Declarative Pipeline 示例
pipeline {
agent any // 在任意可用节点上执行
environment {
MEN_HOME = "/usr/share/maven"
PATH = "${env.MEN_HOME}/bin:${env.PATH}"
}
stages {
stage {
steps {
git url: ':your/repo.git'。credentialsId: 'git-ssh-key',branch: 'main'
}
}
stage {
steps {
sh './build.sh' // 自定义建立脚本或直接使用 mvn 命令
}
}
stage {
steps {
sh './run-tests.sh' // 执行单元/集成测试脚本
}
post {
always {
junit '**/target/surefire-reports/*.xml' // 收集 JUnit 报告
}
}
}
stage {
steps {
archiveArtifacts artifacts: '**/target/*.jar',fingerprint: true
}
}
stage {
steps {
// 若使用 Allure 插件,可改为 allure
publishHTML(target:)
}
}
}
post {
success { echo '✅ 流水线成功完成!' }
failure { echo '❌ 流水线失败,请检查日志。' }
}
}

六、准备建立与测试脚本

a) build.sh

#!/bin/bash
set -e
echo "🔧 开始建立项目..."
# 使用 Maven 编译并打包,如果是其他语言请自行替换相应命令
mvn clean package -DskipTests
echo "✅ 建立完成。"

b) run-tests.sh

#!/bin/bash
set -e
echo "🚀 正在运行自动化测试..."
# 示例:运行 Maven 单元测试,也可以改为 pytest / npm test 等命令
mvn test
echo "✅ 测试执行完毕。"

确保两个脚本都有执行权限:

# 为脚本添加可执行权限
chmod +x build.sh run-tests.sh

七、创建流水线任务并触发建立

  1. 在 Jenkins 首页点击「新建任务」。 • 输入任务名称,例如 "My-AutoTest-Pipeline". • 选择「Pipeline」类型,点击「确定」。
  2. 在「流水线」配置页选择「Pipeline script from SCM」。• SCM 类型选择 Git。• 填写仓库 URL 与凭证 ID。• 分支填写 "*/main". • 脚本方法填写 "Jenkinsfile".
  3. 保存后返回任务页面点击 **Build Now** 即可手动触发;也可以在「触发器」中勾选 「GitHub hook trigger for GITScm」 或者 「定时建立」自动运行触发。
  4. 建立完成后在任务页面的「建立历史」中点击对应编号,即可查看:
    • - 控制台输出了解每一步日志。
    • - JUnit 报告或 Allure 报告展示详细的用例通过率与错误堆栈。

八、常见问题排查 & 调整建议

a) 建立卡在 Checkout 步骤?

  • 确认 Git 凭证正确且拥有仓库读取权限;检查防火墙是否阻止 SSH/HTTPS 出站流量。
  • If using SSH keys,ensure public key is added to Git server’s authorized_keys.

b) 测试阶段报错找不到依赖或驱动?

  • Maven 本地仓库缓存可能不完整,尝试先在服务器上手动运行 MEN_OPTS="-Dmaven.repo.local=/path/to/.m2/repository" mvn clean install -U .
  • If UI 自动化,需要 Chrome 与 ChromeDriver 对齐。可在 pipeline 中加入下载最新驱动的步骤:
  • # 示例:下载匹配当前 Chrome 的驱动
    CHROME_VERSION=$
    wget -q "https://chromedriver.storage.googleapis.com/${CHROME_VERSION}/chromedriver_linux64.zip"
    unzip chromedriver_linux64.zip -d $HOME/bin
    chmod +x $HOME/bin/chromedriver
    export PATH=$HOME/bin:$PATH
    

b) 建立速度慢?

  • LFS这方面。开启 Docker 缓存层或使用 Maven 本地仓库挂载到容器中,加速依赖拉取。
  • AWS/ECR 私有镜像加速:在 Dockerfile 中指定国内镜像源。
  • Caching:在 pipeline 中使用 `stash` / `unstash` 或 `cache` 步骤保存编译产物,以免重复编译。

d) 想要把结果发送给团队?

Add a post‑step:

// 邮件通知示例
post {
always {
mail to: '',subject: " Build ${currentBuild.currentResult}"。body: "查看详情请访问 ${env.BUILD_URL}"
}
}

九、 – 从手工到全自动的跃迁

每一步都不再依赖人工干预,可以解决了前文提到的“三大痛点”。后续可以继续 :

  • 说到*持续部署*。加入 Docker 镜像打包并推送至私有仓库,实现“一键上线”。
  • *质量门禁*的观点是,接入 SonarQube 静态分析。在 pipeline 中设置 “质量阈值” 阶段阻断不合格代码。
  • *多分支策略*:为 feature / develop / release 分支分别配置不同的流水线,实现蓝绿部署或灰度发布。

🚀 掌握了这些。你就可以把繁琐的手工测试彻底抛弃,让交付更快、更稳、更安全!

标签:Ubuntu