news 2026/7/21 23:14:16

手把手教你Jenkins+Pytest+Allure 集成测试环境

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手教你Jenkins+Pytest+Allure 集成测试环境
内容简介

本文会介绍如何从 0 到 1 构建 Python 项目的集成测试环境,文中会详细提及部署过程中会遇到的各种问题。

  • Pytest 负责 Python 代码测试
  • Allure 负责测试报告 HTML 界面展示
  • Jenkins 负责自动化

部署环境为 MacOS,在 Windows 或 Linux 下可以通过类似的方式部署与操作,此外也会给出对应的参考链接。

正文

首先需要安装 Jenkins,Jenkins 依赖于 JDK,所以需要先安装 Java JDK,这块不赘述,随后安装 Jenkins,在 MacOS 中可以通过 HomeBrew 安装。

brew install jenkins

如果你 brew install 很慢,可以参考本文最后的技巧 [1]。

当然,你可以直接通过 Docker 进行安装,jenkins 在 Docker Hub 中提供了官方的源码

docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins

我使用 brew 安装,安装完后,使用如下命令运行 jenkins

$ jenkins

此时 jenkins 将会显式的运行在命令行终端,并且创建~/.jenkins目录作为 JENKINS_HOME,localhost:8080 作为默认 URL。

启动时,Jenkins 会给出初始的密码,该密码会在 JENKINS_HOME 的 secrets/initialAdminPassword 中。

登录后,Jenkins 会要求你安装一些插件,此时出现第一个坑,安装插件速度极慢,可以参考技巧 [2] 来解决这个问题,通过技巧 [2] 修改配置后,可以通过技巧 [3] 来重启 Jenkins

Jenkins 安装有几个关键点。

allure 是一种支持多种编程语言的可视化测试报告工具,allure 在 jenkins 中的插件让 Jenkins 可以轻松调用 allure(有坑),而 allure 在 pytest 的插件主要是为了让 pytest 可以生成满足 allure 要求的测试信息文件。

通过 allure 插件,将 jenkins、pytest、allure 链接在一起,pytest 负责测试,测试生成的报告可以通过 allure 生成图像化界面,而 jenkins 自动化两个过程。

在 MacOS 中,allure 同样通过通过 Homebrew 安装。

brew install allure

allure 在 Windows 与 Linux 的安装方式参考:https://github.com/allure-framework/allure2

allure 安装完后,先来安装 allure 关于 pytest 的插件,顺带将 pytest 也安装了。

pip install pytest==5.3.5 pip install allure-pytest==2.8.9 pip install allure-python-commons==2.8.9

安装完后,可以先来使用一下。

找一个使用 Pytest 的项目,直接去 github 拉取 requests 库,它的 tests 目录写满了通过 pytest 构建的测试用例。

通过 pytest 运行 requests/tests 中的代码并通过 --alluredir 指定生成数据的文件夹,这些数据就是 allure 可读取的数据,通常为一堆 JSON 文件。

pytest requests/tests --alluredir=./allure-results

获得 JSON 文件数据后,可以通过 allure generate 命令来生成 HTML 测试报告界面。

allure generate allure-results -o allure-report --clean

通过上述命令,allure 会将测试报告生成到 allure-report 目录中,至此整个流程走通了一半。

接着来安装 Allure 在 Jenkins 中的插件。

进入 Jenkins 的插件管理界面,安装「Allure Jenkins Plugin」,此外为了更好的显示 HTML 测试报告,继续安装「HTML Publisher Plugin」。

「Allure Jenkins Plugin」安装完后,还需要进行配置,进入「系统设置」->「Global Tool Configuration」。

进行如下配置,From Maven Central 选择了当前最新版 2.13.1。

配置完后,将 Jenkins 重启,让 Jenkins 加载最新安装的插件。

Jenkins 插件安装完后,在 Jenkins 中创建 Freestyle project,Description 描述可以随便填写,在 Build 构建处,选择 Execute Shell,如果你是 windows,则选择 Execute Windows batch command。

因为我在 MacOS 下执行,所以选择 Execute Shell,输入如下 Shell 代码

#!/bin/bash cd /Users/ayuliao/Desktop/workspace/CICD source venv/bin/activate pytest requests/tests --alluredir "${WORKSPACE}/target/allure-results" exit 0

cd 进入相应的目录,然后通过 source 激活相应的 Python 虚拟环境,我只在该虚拟环境中安装了 pytest 库,随后正常使用 pytest 则可,此时依旧使用 pytest 来跑 requests/tests 中的测试代码,但 --alluredir 设置的路径非常有讲究

简单而言, --alluredir 必须为"${WORKSPACE}/target/allure-results",因为 Jenkins 通过插件调用 allure genera 命令时,传入的路径固定为${WORKSPACE}/target/allure-results

${WORKSPACE}是 Jenkins 内置的变量,表示「分配给构建作为工作空间的目录的绝对路径。」。

如果 --alluredir 为其他值,通过 Jenkins 构建项目时,会抛出allure-results does not exists,你可以在「https://github.com/jenkinsci/allure-plugin/issues/201」看见问题的具体细节。

此外,还需要配置 Post-build Actions 构建后的动作,这里也非常关键。

选择「Allure Report」,将 Results 与 Report Path 分别配置成target/allure-resultstarget/allure-report,这是固定的,不要看其注释说你可以随意配置。

上述配置之所以是固定的,需要看 Jenkins Job 中的 console output,jenkins 调用 allure generate 命令是固定的。

$ /Users/ayuliao/.jenkins/tools/ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation/allure/bin/allure generate "/Users/ayuliao/.jenkins/workspace/allures report/target/allure-results" -c -o "/Users/ayuliao/.jenkins/workspace/allures report/target/allure-report"

如果将 Results 与 Report Path 配置成其他值,会出现各种问题。

至此大功告成。

技巧

最后:下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 23:03:15

SSM毕设项目:基于JavaWeb的东北特色农产品电商后台管理系统的设计与开发(源码+文档,讲解、调试运行,定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/7/15 2:43:51

软件测试3大发展趋势,看看你都知道吗?

软件测试这个行业前景怎么样?小白入行的话会出现什么样的问题?遇到瓶颈怎么破?这一系列问题是很多在行业外观望的小白甚至是刚刚入行的萌新测试们都密切关注! 毕竟这关系到自己未来的收入,甚至是决定自己的职业发展方…

作者头像 李华
网站建设 2026/7/17 17:26:15

一文750字教你性能测试报告怎么写

性能测试报告包含哪些内容 1.系统概述 2.测试目的范围与目标 测试目的 测试对象范围 测试指标范围 3.测试工具及环境 测试环境架构 性能测试环境 性能测试环境基本配置 测试工具 4.测试记录及结果分析 场景描述 测试结果数据 测试问题及结果分析 5.稳定性测试 …

作者头像 李华
网站建设 2026/7/17 17:47:19

告别权限混乱!cpolar帮助宝塔 FTP实现远程文件管理自由

宝塔 FTP 作为宝塔面板内置的文件管理模块,核心功能围绕文件传输、权限管控与操作日志展开,适配 Windows、Linux、Unix 等多系统,尤其适合中小企业、创业团队或个人站长使用,优点在于账号创建简单、权限配置灵活,还能精…

作者头像 李华
网站建设 2026/7/18 14:05:16

Ivanti移动端点管理器遭遇两个零日漏洞攻击

Ivanti公司已修复其端点管理器移动版(EPMM)产品中的两个关键零日漏洞,这些漏洞已被恶意利用,延续了企业IT供应商在一月份遭遇的严峻安全事件。2025年1月,数万用户被敦促修补Fortinet零日漏洞,同时Ivanti客户…

作者头像 李华
网站建设 2026/7/17 12:33:19

测试工程师究竟有多吃香?10年老司机真实经历告诉你!

作为一个资深测试开发工程师,同时以三年面试官的经验,感觉现在测试岗位供求关系严重失衡,同时也为一些测试工程师,测试开发工程师而着急,所以写了这篇文章,希望能给相关人员一些帮助。 我是计算机专业硕士…

作者头像 李华