从0到1精通自动化测试,pytest自动化测试框架,生成html报告与html报告报错截图+失败重跑(五)

news/2024/11/8 7:29:13/

目录

一、生成html报告

1、pytest-html

2、html报告

3、指定报告路径

4、显示选项

5、更多功能

二、html报告报错截图+失败重跑

1、conftest.py

2、报告展示

3、失败重试


一、生成html报告

1、pytest-html

pytest-HTML是一个插件,pytest用于生成测试结果的HTML报告,兼容Python 2.7,3.6

1.github上源码地址【https://github.com/pytest-dev/pytest-html】

2.pip安装

pip install pytest-html


3.执行方法

pytest —html=report.html

2、html报告

1.打开cmd,cd到需要执行pytest用例的目录,执行指令:pytest —html=report.html

2.执行完之后,在当前目录会生成一个report.html的报告文件,显示效果如下

3、指定报告路径

1.直接执行”pytest —html=report.html”生成的报告会在当前脚本的同一路径,如果想指定报告的存放位置,放到当前脚本的同一目录下的report文件夹里

pytest —html=./report/report.html

请添加图片描述

2.如果想指定执行某个.py文件用例或者某个文件夹里面的所有用例,需加个参数。具体规则参考【pytest文档2-用例运行规则】
请添加图片描述

4、显示选项

默认情况下,“ 结果”表中的所有行都将被展开,但具测试通过的行除外Passed

可以使用查询参数自定义此行为:?collapsed=Passed,XFailed,Skipped

5、更多功能

更多功能查看官方文档【GitHub - pytest-dev/pytest-html: Plugin for generating HTML reports for pytest results】

二、html报告报错截图+失败重跑

1、conftest.py

做web自动化的小伙伴应该都希望在html报告中展示失败后的截图,提升报告的档次,pytest-html也可以生成带截图的报告

1.失败截图可以写到conftest.py文件里,这样用例运行时,只要检测到用例实例,就调用截图的方法,并且把截图存到html报告上

# conftest.py文件
# coding:utf-8from selenium import webdriver
import pytestdriver = None@pytest.mark.hookwrapper
def pytest_runtest_makereport(item):"""当测试失败的时候,自动截图,展示到html报告中程序员曦曦:param item:"""pytest_html = item.config.pluginmanager.getplugin('html')outcome = yieldreport = outcome.get_result()extra = getattr(report, 'extra', [])if report.when == 'call' or report.when == "setup":xfail = hasattr(report, 'wasxfail')if (report.skipped and xfail) or (report.failed and not xfail):file_name = report.nodeid.replace("::", "_")+".png"screen_img = _capture_screenshot()if file_name:html = '<div><img src="data:image/png;base64,%s" alt="screenshot" style="width:600px;height:300px;" ' \'οnclick="window.open(this.src)" align="right"/></div>' % screen_imgextra.append(pytest_html.extras.html(html))report.extra = extradef _capture_screenshot():'''程序员曦曦截图保存为base64,展示到html中:return:'''return driver.get_screenshot_as_base64()@pytest.fixture(scope='session', autouse=True)
def browser():global driverif driver is None:driver = webdriver.Firefox()return driver

 2.用例部分如下:

# test_01.py文件from selenium import webdriver
import time'''程序员曦曦'''def test_yoyo_01(browser:webdriver.Firefox):browser.get("https://blog.csdn.net/x2waiwai?spm=1000.2115.3001.5343")time.sleep(2)t = browser.titleassert t == "程序员曦曦"# test_02.py文件from selenium import webdriver
import time'''程序员曦曦'''
def test_yoyo_01(browser:webdriver.Firefox):browser.get("https://blog.csdn.net/x2waiwai?spm=1000.2115.3001.5343")time.sleep(2)t = browser.titleassert "程序员曦曦" in t

2、报告展示

1.cmd打开,cd到用例的目录,执行指令

pytest —html=report.html —self-contained-html

3、失败重试

用例失败再重测1次,命令行加个参数就行了

py.test —rerun 1  —html=report.html —self-contained-html

          【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通


二、接口自动化项目实战  

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到


http://www.ppmy.cn/news/506214.html

相关文章

STM32挂载SD卡基于Fatfs文件系统读取文件信息

STM32挂载SD卡基于Fatfs文件系统读取文件信息 &#x1f516;本例程基于正点原子标准库修改而来。 &#x1f4cd;FatFs 相关API函数网站&#xff1a;http://elm-chan.org/fsw/ff/00index_e.html &#x1f334;分别测试了SD卡模块以及Mini SD卡模块。 &#x1f33f;STM32f1单片…

长虹新一代人工智能电视Q6A、Q6K发布,搭载远场语音识别

2018年10月27日&#xff0c;在长虹建业60周年战略转型暨产品发布会上&#xff0c;长虹新一代人工智能电视新品——CHiQ电视Q6A、Q6K首次亮相&#xff0c;引起业界重大关注。 长虹本次推出的CHiQ电视新品Q6A、Q6K系列&#xff0c;以AIIoT技术为核心&#xff0c;通过强大的物联兼…

长虹linux系统 软件,长虹电视如何安装第三方软件?最新的教程来了,适用所有长虹电视...

许多长虹电视的用户曾多次询问小编如何安装当贝市场,小编给出的答案都是:长虹电视不能安装第三方软件,因为长虹电视的系统不支持安装第三方软件,如果想装第三方软件,需要买个当贝盒子,在盒子里下载第三方软件,连接到电视上(这种方法,出过详细的教程,需要的朋友可以搜索“长虹电…

广告刷屏世界杯,联想Filez助力海信全球营销运营

相信每个世界杯球迷在看球的同时也被世界杯球场上不断滚动的“Hisense&#xff0c;世界第二&#xff0c;中国第一”的广告牌吸引目光。 在这28天&#xff0c;64场比赛中&#xff0c;卡塔尔的比赛场地不仅随处可见海信的围栏广告&#xff0c;同时场外也随处可见海信的身影。从备…

烽火HG680-LC/HG680-LY/HG680-LV_S905L3B_当贝桌面-通刷-线刷固件包

烽火HG680-LC&#xff0f;HG680-LY&#xff0f;HG680-LV_S905L3B_当贝桌面-通刷-线刷固件包-内有短接点及主板图 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&am…

leetcode111. 二叉树的最小深度(java)

二叉树的最小深度 leetcode111. 二叉树的最小深度题目描述 DFS 深度优先遍历解题思路代码演示 BFS 广度优先遍历解题思路代码演示 往期经典 leetcode111. 二叉树的最小深度 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode.cn/problem…

图的遍历——DFS, BFS(邻接矩阵,邻接表)——C语言描述

图的遍历——DFS, BFS&#xff08;邻接矩阵&#xff0c;邻接表&#xff09;——C语言描述 文章目录 图的遍历——DFS, BFS&#xff08;邻接矩阵&#xff0c;邻接表&#xff09;——C语言描述0 测试用例框架1 图的深度优先遍历&#xff08;DFS&#xff09;1.1 邻接矩阵&#xff…

Android10 电量在低于5%的时候自动关机

b/frameworks/base/services/core/java/com/android/server/BatteryService.java-358,6 358,10 public final class BatteryService extends SystemService {}private boolean shouldShutdownLocked() {// 电量低于5%且没有接任何电源if(mHealthInfo.batteryLevel < 5 &…