每个自动化测试结果都要有一份详细的测试报告来呈现,今天测试报告来了,pytest常用的测试报告有几种,比如在pycharm中直接生成报告,通过HTML插件生成,或者还有最常用的allure。今天安静主要介绍通过pytest的插件pytest-html来生成测试报告
pytest-html
pytest-html属于pytest第三方插件,使用时,需要进行安装。
安装: pip install pytest-html
源码:https://github.com/pytest-dev/pytest-html
import pytest class Test01(): def test_01(self): print(' ---用例01---') def test_02(self): print(' ---用例02---') def test_03(self): print(' ---用例03---') if __name__ == '__main__': pytest.main(['-vs'])
生成报告执行命令: pytest --html=report.html 。通过下图的代码可以发现已经生成了html内容还给出了相应的报告地址
打开报告,呈现出这样的HTML。看起来和unittest的报告其实差不多的。
执行报告路径
如果在PO模式下通常都会把报告内容放到对应的report目录下,生成路径时候,我们也可以在参数中加入报告路径 pytest -vs --html=./report/report.html
执行完代码后就会发现,在当前目录下已经生成了一个report文件夹,测试报告也已经存放在报告中了。
报告独立
细心的小伙伴们,自己在本地执行完分享出去,分享报告的时候样式会丢失,因为通过上述方法保存的HTML会的CSS会在本地,可以通过下面命令,将CSS写入到HTML中
命令: pytest --html=report.html --self-contained-html 通过执行后,再生成的文件就可以进行分享了
汉化报告
上面的报告会发现是英文的,有一些领导不喜欢英文,就喜欢看汉字,那怎么办?只能解决了,这里安静在网上找到了别人修改好的。
github地址:https://github.com/13691579846/pytest-html
找到后下载源代码,将pytest-html放到python的第三方库目录(PythonLibsite-packages)下。如果安装过pytest-html直接替换即可。
然后在进行执行代码,查看测试报告,就会发现已经变成汉化版本了
pytest+allure
一、安装allure-pytest
pip install allure-pytest
二、安装Command Tool
1.进入allure官网下载其Windows的命令工具
2.解压压缩包,把其./bin/下的路径添加到Windows环境变量PATH中
三、简介
简单介绍下allure库的特性:
- @allure.feature # 用于定义被测试的功能,被测产品的需求点
- @allure.story # 用于定义被测功能的用户场景,即子功能点
- @allure.step # 用于定义被测功能的操作步骤
- @allure.attach # 用于向测试报告中输入附加的信息或附件
- @allure.severity # 用于标记测试用例的严重等级
(PS:后续会根据日常需要不断补充)
四、初尝
import pytest @allure.feature('这是一个测试') def test_al(): print('hello world') assert 1 > 2 if __name__ == '__main__': pytest.main(['-s', '-q', '--alluredir', './report/xml'])
运行命令生成allure数据集合,有两种方法:
- pytest.main(['-s', '-q', '--alluredir', './report/xml'])
- cmd下执行==>
pytest 测试目标文件 --alluredir 数据目录
-q 的意思是减少报告多余
--alluredir 的意思是生成allure报告的数据的目标目录,即测试目录
运行后的结果,是生成xml的数据集合
然后需要生成Allure报告,在cmd下运行==>
allure generate --clean ./report/xml/ -o ./results/html/
(第一个是数据集目录,第二个是生成报告目录)即可生成很好看的报告!