Python生成allure测试报告,allure使用详细说明
Posted qsmy_an
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python生成allure测试报告,allure使用详细说明相关的知识,希望对你有一定的参考价值。
pytest框架自带一个测试报告,内容也相对全面,但是可读性差点,allure生成的测试报告,可改造性强,看起来也美观。使用过程在此总结一下。
一、生成allure测试报告
1.下载安装allure-pytest插件,我一般都是在pycharm里直接安装:File--Setting--Project--Python Interpreter--右侧"+"--输入"allure-pytest"--选中--点击左下角"Install Package"。有问题是环境配置的问题的话,可以百度下。
2.应该是需要在项目的根目录建一个report文件夹,这点不确定了,可以试下,不手动report文件夹,可以生成报告吗,如果不行,缺少这个目录的话,会报错提示找不到目录。
3.要想生成allure测试报告,有好几种方法,cmd执行命令生成、pycharm的终端Terminal执行命令,这俩百度下命令,执行命令就可以了。但是我们自动化最后不能手动再执行个命令生成报告吧,那多不方便,所以把命令写到main.py文件运行完测试用例的代码之后就自动生成报告了。
pytest.main(["./test_script",
"-sv","--alluredir","./report/temp_jsonreport"])
os.system("allure generate ./report/temp_jsonreport -o ./report/html --clean")
因为allure生成的报告是json格式的,需要再转化成html格式的,所以会自动生成一个temp_jsonreport文件,就按上面写的,然后执行main.py文件就可以。
具体:
1、"./test_script"这个是你测试用例的路径,比如我的所有的测试用例都在这个文件夹下,这个文件下又有很多每个用例的文件夹,那你如果想执行所有的用例就写到"./test_script"这个路径就可以了,如果是想要执行这个文件下的某个用例,就写到具体的那个文件的路径。
2、"--alluredir"这个是创建allure报告的路径。
3、-o是执行,--clean是清除之前生成的报告。
main.py整理好了,可以执行main文件,用例执行完成后,在report文件夹下会有两个文件夹:html、temp_jsonreport。在html这个文件夹下,找到index.html文件,这个就是我们生成的测试报告,右键用浏览器打开就可以看到了。
二、allure测试报告优化
在allure测试报告页面可以选择中英文切换,我个人比较倾向使用【功能/Behaviors】这个菜单里面的信息,因为这里可以看到更多详细的内容,也比较容易对我们的测试用例进行规范化,allure测试报告的改造也大部分都在这个环节上。
1、增加功能模块描述、测试点描述及测试步骤
方法:先import allure,然后在类上添加装饰器@allure.feature("生成账单"),在方法上添加装饰器@allure.story("批量生成账单"),在方法里面添加步骤with allure.step("1.进入[社区管理]菜单"):
使用及效果图:
(feature相当于一个功能,一个大的模块,将case分类到某个feature中,报告中在behaviore中显示,相当于testsuite)
(story相当于对应这个功能或者模块下的不同场景,分支功能,属于feature之下的结构,报告在features中显示,相当于testcase)
2、执行断言,失败截图、成功截图
一条case可以在中间步骤进行断言,可以在最后进行断言,看测试需要。我们想要的一个结果是断言失败的截图并放到allure测试报告中。
with allure.step("5.执行断言"):
#如果断言失败就截图并保存
try:
assert "添加成功" in self.driver.page_source
except:
self.driver.save_screenshot("./screenshot/houseInfoFail.png")
allure.attach.file("./screenshot/houseInfoFail.png", attachment_type=allure.attachment_type.PNG)
#如果断言失败就截图,这里加一个断言失败,方便报告里记录失败用例,
# 不加的话无论失败与否pytest框架都会判断你的用例执行成功了
assert "添加成功" in self.driver.page_source
现在项目下面建一个screenshot文件夹,用来放截取的图片,然后allure再获取该图片。houseInfoFail.png这个是自己定义的图片的文件名。
如果断言成功了,也截取一张图片,并放到allure报告中。完整代码如下:
with allure.step("5.执行断言"):
#如果断言失败就截图并保存
try:
assert "添加成功" in self.driver.page_source
except:
self.driver.save_screenshot("./screenshot/houseInfoFail.png")
allure.attach.file("./screenshot/houseInfoFail.png", attachment_type=allure.attachment_type.PNG)
#如果断言失败就截图,这里加一个断言失败,方便报告里记录失败用例,
# 不加的话无论失败与否pytest框架都会判断你的用例执行成功了
assert "添加成功" in self.driver.page_source
#截图
with allure.step("6.保存图片"):
self.driver.save_screenshot("./screenshot/houseInfo.png")
allure.attach.file("./screenshot/houseInfo.png", attachment_type=allure.attachment_type.PNG)
houseInfo.png这个是执行成功截取的图片,注意和上面执行失败截取的图片文件名区分一下。
效果:
还有很多功能,想要的效果达到了就可以了。
python学习-pytest-Pytest集成Allure生成测试报告
Pytest集成Allure生成测试报告
1、Allure安装
1)Allure报告的demo样式(是不是很漂亮呢)
2)Allure下载
选择需要的版本,下载zip文件,解压即可
2、添加allure环境变量
path:D:\\Program Files\\allure-2.13.1\\bin
3、查看生成的allure报告
1. 生成allure报告
启动后会自动跳转到 http://192.168.11.1:54011/ 打开测试报告
2. 生成测试报告进化。。。
像上面的查看测试报告,比较麻烦,我们可以多做一步,使查看报告简便一些
cmd:allure generate <allure测试结果目录> -o <存放报告的目录> --clean
执行完会得到一个文件夹
这样打开的测试报告跟第一种查看的测试报告数据是一样的,打开的时候就不需要在每次在dos窗口下输入命令了,但是这种的在PyCharm中可以直接浏览器打开,如果说你发给别人看的时候,就不能直接用浏览器打开了,需要开启一个web服务,如下
cmd:allure open 测试报告文件夹路径
执行完后,浏览器就会自动打开 http://192.168.11.1:56224/ 查看报告
4、pytest中集成allure生成测试报告
1)安装allure-pytest库
pip install allure-pytest
2)使用allure生成测试报告
pytest.main([\'-s\', "--alluredir=reports/allure"])
# 使用os模块等待allure测试报告生成后,进行进化测试报告
os.system("allure generate <allure测试结果目录> -o <存放报告的目录> --clean")
生成的报告都以json格式存储,日志以txt文本保存
进化的测试报告是以整个项目保存的
5、allure集成jenkins
1)jenkins安装Allure插件
在线安装Allure
离线安装Allure
② 选择对应的版本进行下载即可
③ 进行离线安装,进入到高级里面,上传插件,选择下载的插件,点击上传,即可进行离线安装
2)配置jenkins 全局工具路径(两种方式,选择其一),allure安装包的路径
配置好全局工具路径,进入项目中就可以看到 Allure Report图标
3)项目当中构建操作,添加 allure 测试报告路径
4)查看生成的 Allure 测试报告
Explicit is better than implicit(明了胜于晦涩)
以上是关于Python生成allure测试报告,allure使用详细说明的主要内容,如果未能解决你的问题,请参考以下文章
python自动化之如何利用allure生成测试报告
python自动化之如何利用allure生成测试报告
Pytest+Allure生成自动化测试报告
Allure+pytest 生成测试报告
python + allure生成测试报告
Python测试框架pytest(28)测试报告Allure - 动态生成标题动态生成功能报告添加用例失败截图