python pytest测试框架介绍四----pytest-html插件html带错误截图及失败重测机制
一、html报告错误截图
这次介绍pytest第三方插件pytest-html
这里不介绍怎么使用,因为怎么使用网上已经很多了,这里给个地址给大家参考,pytest-html生成html报告
今天在这里介绍pytest生成的报告怎么带有截图,这在web自动化测试非常有用。
需求是测试用例错误就截图,方法如下:
我们要新建一个关于截图的插件文件conftest.py,注意,文件名不能变,因为pytest-html会自动找这个自己写的插件,内容如下:
from selenium importwebdriverimportpytest driver=None@pytest.mark.hookwrapperdefpytest_runtest_makereport(item):"""Extends the PyTest Plugin to take and embed screenshot in html report, whenever test fails.: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 notxfail):file_name= report.nodeid.replace("::", "_")+".png"_capture_screenshot(file_name)iffile_name:html= '<div><img src="%s" alt="screenshot" style="width:304px;height:228px;"'\'οnclick="window.open(this.src)" align="right"/></div>' %file_nameextra.append(pytest_html.extras.html(html))report.extra=extradef_capture_screenshot(name):driver.get_screenshot_as_file(name)@pytest.fixture(scope='session', autouse=True)defbrowser():globaldriverif driver isNone:driver=webdriver.Firefox()return driver
关于conftest.py文件怎么应用,可以查看文档:conftest.py how to put
接下来,就是写用例了,在与conftest当前文件夹下写用例文件test_aa.py,如下
deftest_screenshot_on_test_failure(browser):browser.get("https://www.baidu.com")assert False
然后再次用pytest运行,运行方式如下:
E:\>pytest -s -v test_aa.py --html=report.html
然后我们可以在E盘下看到生成了report.html文件及测试用例为名的png截图文件
打开html文件,详情如下:
参考:
https://pypi.python.org/pypi/pytest-html
二、失败重试
使用的插件是pytest-rerunfailures,官网这里
使用方法:
在测试时加入--rerun参数
py.test --rerun 2用例失败再重测2次
转载于:https://www.cnblogs.com/landhu/p/7463631.html
python pytest测试框架介绍四----pytest-html插件html带错误截图及失败重测机制相关推荐
- python实时读取日志并打印关键字怎么实现_python pytest测试框架介绍五---日志实时输出...
同样的,在使用pytest进行自动化测试时,需要将实时日志打印出来,而不是跑完后才在报告中出结果. 不过,好在pytest在3.3版本开始,就支持这一功能了,而不用再像nose一样,再去装第三方插件. ...
- python 日志框架_python pytest测试框架介绍五---日志实时输出
同样的,在使用pytest进行自动化测试时,需要将实时日志打印出来,而不是跑完后才在报告中出结果. 不过,好在pytest在3.3版本开始,就支持这一功能了,而不用再像nose一样,再去装第三方插件. ...
- Pytest测试框架(五):pytest + allure生成测试报告
系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...
- Pytest测试框架(二):pytest 的setup/teardown方法
系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...
- Python编程必不可少的pytest测试框架
进行编程测试重要的是为了更高效的完成功能的实现. pytest是基于unittest实现的第三方测试框架,比 unittest 更加的简洁.高效,并且可以完美兼容 unittest 的测试代码,无需对 ...
- Python热门单元测试框架对比:pytest和unittest还傻傻分不清楚?
前言 对于我们测试来说,做自动化测试需要编写测试用例,编写测试用例就会使用到单元测试模块,常见的python单元测试模块有unittest,pytest,nose等,但是听说过最多的也就属于pytes ...
- Pytest 测试框架——数据驱动
引言 前面已经和大家介绍过 Unittest 测试框架的数据驱动框架 DDT,以及其实现原理.今天和大家分享的是 Pytest 测试框架的数据驱动,Pytest 测试框架的数据驱动是由 pytest ...
- 5 分钟快速上手 pytest 测试框架
本文将会把关于 Pytest 的内容分上下两篇,上篇主要涉及关于 pytest 概念以及功能组件知识的介绍,下篇主要以一个 Web 项目来将 Pytest 运用实践中. 为什么要做单元测试 相信很多 ...
- python nose测试框架全面介绍十---用例的跳过
又来写nose了,这次主要介绍nose中的用例跳过应用,之前也有介绍,见python nose测试框架全面介绍四,但介绍的不详细.下面详细解析下 nose自带的SkipTest 先看看nose自带的S ...
最新文章
- MAT之SVM:SVM之分类预测根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测
- 「敏捷开发」适合什么样的团队?
- 神经网络 | 神经网络概述及发展史
- 【NLP】预训练时代下的文本生成|模型技巧
- 空值替换为0_「Excel」是零值还是空值,你可以自由掌控
- .Net使用RabbitMQ详解
- vue路由详解版一目了然
- javascript 计算两个坐标的距离 米_土方全面应用计算
- 多线程的线程通信(生产消费)
- OCI runtime exec failed: exec failed:解决方法
- strassen矩阵乘法 java_Strassen 矩阵算法 Java 实现
- windows7下bcdedit出现“拒绝访问”解决办法
- LNMP - nginx代理详解
- ***必学的DOS命令
- Eclipse/NSight: methond could not resolved
- python, c/c++去掉文本的换行符
- 带图像识别的YYS连点器 V2.0
- tp6 使用workerman
- Unity3D 太空射击游戏学习笔记
- bzoj 4134: ljw和lzr的hack比赛 sg函数+字典树合并