一、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带错误截图及失败重测机制相关推荐

  1. python实时读取日志并打印关键字怎么实现_python pytest测试框架介绍五---日志实时输出...

    同样的,在使用pytest进行自动化测试时,需要将实时日志打印出来,而不是跑完后才在报告中出结果. 不过,好在pytest在3.3版本开始,就支持这一功能了,而不用再像nose一样,再去装第三方插件. ...

  2. python 日志框架_python pytest测试框架介绍五---日志实时输出

    同样的,在使用pytest进行自动化测试时,需要将实时日志打印出来,而不是跑完后才在报告中出结果. 不过,好在pytest在3.3版本开始,就支持这一功能了,而不用再像nose一样,再去装第三方插件. ...

  3. Pytest测试框架(五):pytest + allure生成测试报告

    系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...

  4. Pytest测试框架(二):pytest 的setup/teardown方法

    系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...

  5. Python编程必不可少的pytest测试框架

    进行编程测试重要的是为了更高效的完成功能的实现. pytest是基于unittest实现的第三方测试框架,比 unittest 更加的简洁.高效,并且可以完美兼容 unittest 的测试代码,无需对 ...

  6. Python热门单元测试框架对比:pytest和unittest还傻傻分不清楚?

    前言 对于我们测试来说,做自动化测试需要编写测试用例,编写测试用例就会使用到单元测试模块,常见的python单元测试模块有unittest,pytest,nose等,但是听说过最多的也就属于pytes ...

  7. Pytest 测试框架——数据驱动

    引言 前面已经和大家介绍过 Unittest 测试框架的数据驱动框架 DDT,以及其实现原理.今天和大家分享的是 Pytest 测试框架的数据驱动,Pytest 测试框架的数据驱动是由 pytest ...

  8. 5 分钟快速上手 pytest 测试框架

    本文将会把关于 Pytest 的内容分上下两篇,上篇主要涉及关于 pytest 概念以及功能组件知识的介绍,下篇主要以一个 Web 项目来将 Pytest 运用实践中. 为什么要做单元测试 相信很多 ...

  9. python nose测试框架全面介绍十---用例的跳过

    又来写nose了,这次主要介绍nose中的用例跳过应用,之前也有介绍,见python nose测试框架全面介绍四,但介绍的不详细.下面详细解析下 nose自带的SkipTest 先看看nose自带的S ...

最新文章

  1. MAT之SVM:SVM之分类预测根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测
  2. 「敏捷开发」适合什么样的团队?
  3. 神经网络 | 神经网络概述及发展史
  4. 【NLP】预训练时代下的文本生成|模型技巧
  5. 空值替换为0_「Excel」是零值还是空值,你可以自由掌控
  6. .Net使用RabbitMQ详解
  7. vue路由详解版一目了然
  8. javascript 计算两个坐标的距离 米_土方全面应用计算
  9. 多线程的线程通信(生产消费)
  10. OCI runtime exec failed: exec failed:解决方法
  11. strassen矩阵乘法 java_Strassen 矩阵算法 Java 实现
  12. windows7下bcdedit出现“拒绝访问”解决办法
  13. LNMP - nginx代理详解
  14. ***必学的DOS命令
  15. Eclipse/NSight: methond could not resolved
  16. python, c/c++去掉文本的换行符
  17. 带图像识别的YYS连点器 V2.0
  18. tp6 使用workerman
  19. Unity3D 太空射击游戏学习笔记
  20. bzoj 4134: ljw和lzr的hack比赛 sg函数+字典树合并

热门文章

  1. Windows Server 2008 R2安装IIS
  2. WIN7安装及配置JDK
  3. 使用Hive UDF和GeoIP库为Hive加入IP识别功能
  4. loadrunner 11 下载地址
  5. jBPM4.4:分配任务的几种方式
  6. 在JSP客户端限制表单重复提交
  7. C#-几个STL相关
  8. hdu4772 水模拟
  9. hdu4685 最大匹配可能性
  10. 【C++ 语言】线程安全队列 ( 条件变量 | 线程调度 )