Jenkins+python+allure-pytest之API自动化测试框架

Jenkins环境:

Jenkins ver. 2.222.4

Allure Jenkins plugin: 2.28.1

jenkins -> 系统管理 -> 插件管理 -> 可选插件中过滤Allure,勾选对应插件安装 :Allure Jenkins plugin: 2.28.1

Jenkins+python+allure-pytest之API自动化测试框架

 安装完插件后,继续在jenkins-> Global Tool Configuration中安装Allure Commandline,该安装会在工程构建时联网下载安装 :

Jenkins+python+allure-pytest之API自动化测试框架

建议直接通过jenkins里配置安装,当然你也可以自行离线下载安装,如下:

官方文档:介绍各种操作系统环境下安装allure的操作步骤:https://docs.qameta.io/allure/#_installing_a_commandline

第1步:下载allure.zip,下载地址:allure-github:https://github.com/allure-framework/allure2

Jenkins+python+allure-pytest之API自动化测试框架

Jenkins+python+allure-pytest之API自动化测试框架

第2步:解压allure.zip,将路径添加环境变量,path中,记得需要重启电脑

第3步:验证allure,在cmd中输入allure,然后回车,如果可以看到一下,说明配置完成

第4步:运行测试用例 pytest.main(["-m","login","-s","-q","--alluredir=./report"])

"-m": 标记用例

"login": 被标记需要执行用例

"-s":允许终端在测试运行时输出某些结果,例如你想输入print的内容,可以加上-s

"-q"简化输出结果

"--alluredir": 生成allure指定语法

"./report":生成报告的路径

"--clean-alluredir" :因为这个插件库allure-pytest生成的报告文件,你第二次运行时候不会清理掉里面的东西,所以你需要删除这个report文件夹,然后运行重新新建reoprt文件夹

说明:运行后,会在report文件夹里面生成文件

项目配置

构建:

选择linux系统构建代码如下(执行shell):

cd  /opt/PycharmProjects/Interface_test_template/testcases/
python3 -m pytest -q test_run.py --alluredir "这里一样选择jenkins生成的工作目录下的项目目录下/allure-results"

选择windows系统构建代码如下:

cd /d D:\PycharmProjects\Interface_test_template\testcases\

 # 这里有个坑,建议默认选择jenkins工作目录下的当前项目目录下。因为在jenkins里配置的allure-report,默认是生成到jenkins生成的项目目录下的。必须保证allure-report和allure-results在同级目录里,否则会报错找不到结果数据报告

# --clean-alluredir  这个参数必须带上,否则同一个job执行N次构建,报告统计的时候就会累加显示数据,所以必须每次构建的时候都得先删除上一次的allure-report文件夹,然后本次构建重新生成。
python -m pytest -s -q test_run.py --clean-alluredir --alluredir "C:\Users\袁大平\.jenkins\workspace\Interface_test_template\allure-results"
exit 0

jenkins执行windows命令时,若退出代码不为0 ,则jenkins会将构建标记为失败。
构建后操作:
Jenkins+python+allure-pytest之API自动化测试框架

注意:工程构建的操作请确保,allure生成的报告的xml原始数据文件,与构建后操作中的allure report的path中的目录一致,否则将一直报Build step ‘Allure Report’ marked build as failure

allure定制化报告

第1步:一些词语解释

一、feature: 标注主要功能模块。
二、story: 标注Features功能模块下的分支功能。
三、severity: 标注测试用例的重要级别。

1)blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
2)critical级别:临界缺陷(功能点缺失)
3)normal级别:正常    默认为这个级别
4)minor级别:次要缺陷(界面错误与UI需求不符)
5)trivial级别:轻微缺陷(必输项无提示,或者提示不规范) 

四、step: 标注测试用例的重要步骤。

五、attach:用于向测试报告中输入一些附加的信息,通常是一些测试数据信息。

Jenkins+python+allure-pytest之API自动化测试框架

1)name就是附件名称,contents就是附件,type就是传类型

2)附件支持的类型(TEXT,HTML,XML,PNG,JPG,JSON,OTHER)

六、issue:这里传的是一个连接,记录的是你的问题。

七、testcase:这里传的是一个连接,记录的是你的用例。

八、description:描述用例信息

 注意:以前的写法可能就是@allure.方法,现在调用不出来方法了,需要@allure.MASTER_HELPER.方法(其中MASTER_HELPER是AllureHelper()的实例化对象,需要@allure.MASTER_HELPER再调用里面的方法)