在 pytest 中提供了生成html格式测试报告的插件 pytest-html
安装
安装命令如下:
pip install pytest-html
使用
我们已经知道执行用例的两种方式,pytest.main()
执行和命令行执行,而要使用pytest-html
生成报告,只需要在执行时加入参数--html=报告完整路径
,所以同样有两种生成报告的方式。
-
命令行生成
# 指定报告名称,生成在当前目录下 pytest --html=接口自动化测试报告.html# 指定报告生成路径 pytest --html=E:/report/接口自动化测试报告.html
-
pytest.main()
生成使用
pytest.main()
同样也可以生成测试用例,但需要注意,直接在测试用例里面执行pytest.main([--html=报告名称.html"])
不会生成测试报告,而是需要在项目执行文件如run.py
中使用pytest.main([--html=接口自动化测试报告.html"])
,然后再运行run.py
文件,才会生成报告。例如:test_demo.py
代码如下import pytest import requests, jsonclass TestDemo:def test_get_all_users(self):'''查询所有用户信息'''url = "http://127.0.0.1:5000/users"res = requests.get(url=url).textres = json.loads(res)assert res['code'] == 0def test_register(self):'''注册用户'''headers = {"Content-Type": "application/json;charset=utf8"}url = "http://127.0.0.1:5000/register"data = {"username": "张学友","password": "123456","sex": "0","telephone": "13823456789","address": "北京东城区"}res = requests.post(url=url, headers=headers, json=data).textres = json.loads(res)assert res['code'] == 0if __name__ == '__main__':pytest.main(["--html=接口自动化测试报告.html"])
这里直接运行
test_demo.py
不能生成测试报告,需要编写专门的运行模块,run.py
代码如下:import pytestif __name__ == '__main__':pytest.main(['--html=接口自动化测试报告.html'])
自动化测试相关教程推荐:
2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili
2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili
测试开发相关教程推荐
2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili
postman/jmeter/fiddler测试工具类教程推荐
讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili
2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili
2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili
报告展示
运行后会生成 assets 的文件夹以及 .html 文件,.html 文件就是测试报告,结果如下:
在浏览器中打开后展示如下:
点击报告Results中对应的测试用例,能展示具体的执行日志。
总结
使用pytest-html生成的测试报告相对较为简洁,展示内容也相对精简,对报告样式要求不高的话完全够用了。
当然,pytest 还可以结合 Allure 生成更为强大的测试报告,这个留后面探究。
总结:
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步
在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。
我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,
测试开发视频教程、学习笔记领取传送门!!