pytest 是什么
pytest 是 python 的一款测试框架,拥有 unittest 的功能并比它更丰富。
allure 是什么
有非常多的优秀的测试框架,但却是有非常少优秀的报告工具可以展示非常清楚的用例执行过程和结果。
allure 是一款开源的,专门用来展示测试结果的工具,目的是希望团队内部每一个人都可以看到非常清楚的测试结果。
allure 可以与非常多的著名测试框架做集成。
像 Java 语言,可以与 junit4,junit5,TestNG 测试框架集成。
python 语言,可以与 pytest,behave,nose 测试框架集成。
allure 会将测试用例的执行数据保存到 XML 文件当中,再利用 allure 的命令行将文件转换成 HTML 形式呈现出来。
allure 的官方地址:http://allure.qatools.ru/
安装 allure 命令行
官网提供了每个平台的,命令行安装方式。
以下是手动安装方式,适用于各平台:
1.从 Maven Center 下载最新的安装包:
http://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/
目前是 2.12.1 的版本。
2.将包解压到任何一个目录。建议不要选 C 盘或者路径很深的。比如 D:\allure-command-2.12.1
3.跳转到解压后的 bin 目录下面,windows 下执行 allure.bat。其它平台执行 allure.
4.配置 allure 的环境变量:
在命令行当中运行 allure —version。
allure 与 pytest 的集成
在 allure 安装完成之后,需要与 pytest 集成,能够在 pytest 运行完成之后,生成 allure 的文件 。
1.安装 pytest 的 allure 支撑插件。
pip 命令行:pip install allure-pytest
2.在执行 pytest 命令时,添加 allure 命令参数:—alluredir=Outputs/allure (相对于 pytest 命令所在目录的测试报告目录)
if __name__ == '__main__':
pytest.main(["-s","-v",
"--html=Outputs/reports/pytest.html",
"--alluredir=Outputs/allure"]) # allure文件生成的目录
等待 pytest 执行完所有的测试用例,在 Outputs/allure 下会生成一些文件。
在 cmd 命令行当中,执行:allure serve 测试结果文件目录,就会生成漂亮的 HTML 报告。
allure 与 jenkins 的集成
allure 与 jenkins 集成之后,可以直接在 jenkins 上,直接查看到上图的 allure 结果。
并因为 jenkins 的构建记录都存在,所以可以看到历史构建曲线图,用例数的变化、通过率的变化、耗时的变化等均可查看到。
集成步骤如下:
1、在 jenkins 上安装 allure 插件。
Step1: 去 jenkins 插件网站上下载 allure 插件最新版本:
Index of /plugins/allure-jenkins-plugin
Step2: 打开 jenkins,在系统管理 —> 插件管理 —>Advanced —> Upload Plugin
上传。phi 格式的插件,点击[上传]操作。
会自动跳转到以下页面。此处黄色球的提醒是指:此插件已经安装了,jenkins 需要重启使此更新生效。
若是第一次安装,应该是蓝色球。
可将 jenkins 服务重新重启,使安装的插件生效。
2、在 jenkins 全局工具当中配置 allure 命令行。
在 系统管理 —> 全局工具配置 —> 当中做以下配置(allure 和 jdk),配置完并保存:
3、在 Job 当中,配置 allure 报告展示:
针对以上,我对 job 做了以下调整:
1.将当前 job 的工作空间调整为,我的 pytest 用例所在工程目录:
2.在 build 当中,直接执行 1 中目录下的 python 文件(包含了 pytest 生成 allure 报告的命令)
配置完成之后,立即构建此工程。连续构建几次,有了历史记录之后