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-> Global Tool Configuration中安装Allure Commandline,该安装会在工程构建时联网下载安装 :
建议直接通过jenkins里配置安装,当然你也可以自行离线下载安装,如下:
官方文档:介绍各种操作系统环境下安装allure的操作步骤:https://docs.qameta.io/allure/#_installing_a_commandline
第1步:下载allure.zip,下载地址:allure-github:https://github.com/allure-framework/allure2
第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会将构建标记为失败。
构建后操作:
注意:工程构建的操作请确保,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:用于向测试报告中输入一些附加的信息,通常是一些测试数据信息。
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再调用里面的方法)