1.使用pytest-html插件生成测试报告

1.1.pytest是借助pytest-html插件生成测试测试报告, 不用自己编写生成报告代码。

1.2.github源码地址 https://github.com/pytest-dev/pytest-html

2.安装:pip install pytest-html

3.验证安装:使用pip list 可以查看是否有pytest-html,如果有表示已经安装成功。

4.生成报告:使用命令pytest --html=reportname.html (参数是测试报告的名称)。

5.错误用例截图:希望测试用例失败的时候能够截取一张图片,这样可以知道哪里出了问题或者出现问题的大概位置,那么又该如何在这一份报告里面插入截图呢?

5.1.上篇文章提到了conftest.py文件,那么现在就可以把失败截图的代码放到这个文件里面了(如果和python2.7配合是不行的,不能生成报告)。

import pytest
from selenium import webdriver
from py._xmlgen import html_driver = None
# 测试失败时添加截图和测试用例描述(用例的注释信息)@pytest.mark.hookwrapper
def pytest_runtest_makereport(item):"""当测试失败的时候,自动截图,展示到html报告中"""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'''return _driver.get_screenshot_as_base64()@pytest.fixture(scope='module')
def driver():global _driverprint('------------open browser------------')_driver = webdriver.Firefox()yield _driverprint('------------close browser------------')_driver.quit()

5.2.注意这个模块from py._xmlgen import html,在网上看到大多数是使用 from py.xml import html,我使用这个模块时会报错,所以换成现在这个模块了(估计和python版本有关系,我用的3,3估计没有这个模块了)。

5.3.失败用例有了图片了,而且很清晰。用例断言的是登录失败时的错误提示信息是否正确(我把用例里面期望值改了),实际提示信息是‘账号和密码错误’和‘请输入账号’,但是我们期望的是‘账号和密码错’和‘请输入账’。

6.添加描述:正常情况下,报告是没有描述信息这一项的,所以只能通过添加代码来实现了(描述信息就是用例函数上方的注释信息)。

6.1.在上面的代码report.extra = extra后面添加这样一行代码。

report.description = str(item.function.__doc__)

并在文件中添加这两个方法

@pytest.mark.optionalhook
def pytest_html_results_table_header(cells):cells.insert(1, html.th('Description'))@pytest.mark.optionalhook
def pytest_html_results_table_row(report, cells):cells.insert(1, html.td(report.description))

第十四:Pytest进阶之html测试报告相关推荐

  1. 三十四、进阶之获取详情页面信息并显示

    (1)分析如何获取对应电影的详情信息 获取卖座网站电影的详情信息 观察卖座网,进入"阿凡达"和"你好李焕英"的详情页面,可以发现路径变化的只有电影id(film ...

  2. J2EE进阶(二十四)JBoss Web和 Tomcat的区别

    J2EE进阶(二十四)JBoss Web和 Tomcat的区别 在Web2.0的浪潮中,各种页面技术和框架不断涌现,为服务器端的基础架构提出了更高的稳定性和可扩展性的要求.近年来,作为开源中间件的全球 ...

  3. Java进阶(十四)单元测试、反射、注释、动态代理

    十四.单元测试.反射.注释.动态代理 需要学会什么? 单元测试:开发好的系统中存在很多的方法,如何对这些方法的正确性进行测试. 反射:如何在程序运行时去得到Class对象,然后去获取Class中的每个 ...

  4. Frank Luna DirectX12阅读笔记:绘制进阶(第八章-第十四章)

    目录 第八章 光照 8.1 光和材质的交互 8.2 法向 8.3 光照中其他重要的向量 8.4 Lambert余弦定律 8.5 散射光(diffuse lighting) 8.6 环境光(ambien ...

  5. 只需十四步:从零开始掌握 Python 机器学习(附资源)

    分享一篇来自机器之心的文章.关于机器学习的起步,讲的还是很清楚的.原文链接在:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找 ...

  6. 鸟哥的Linux私房菜(服务器)- 第十四章、账号控管: NIS 服务器

    第十四章.账号控管: NIS 服务器 最近更新日期:2011/07/28 有没有想过,如果我有十部 Linux 主机,这十部主机仅负责不同的功能,事实上,所有的主机账号与对应的密码都相同! 那么我是将 ...

  7. 201671030111 李蓉 实验十四 团队项目评审课程学习总结

    项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 掌握软件项目评审会流程,反思总结课程学习内容. 任务一:结合本学期课程学习 ...

  8. 201671010430 司昕劼 实验十四 课程学习总结

    实验十四 课程学习总结 项目 内容 这个作业属于哪个课程 (https://www.cnblogs.com/nwnu-daizh/) 这个作业的要求在哪里 (https://www.cnblogs.c ...

  9. 【《Real-Time Rendering 3rd》 提炼总结】(十一) 第十四章 : 游戏开发中的渲染加速算法总结

    本文由@浅墨_毛星云 出品,转载请注明出处.   文章链接: http://blog.csdn.net/poem_qianmo/article/details/78884513 导读 这是一篇1万3千 ...

最新文章

  1. electron调用python_在Electron app中运行python脚本
  2. MySQL 数据库sql命令查询被锁的表实例演示,mysql的锁表与解锁,mysql强制解锁杀掉进程,mysql查询锁表一直转圈
  3. 预备作业02-20162314王译潇 黑客帝国之路1.1
  4. linux怎么在win上安装mysql_CentOS下安装MySQL及Windows下使用Navicat for MySQL连接
  5. 这就是你在妈妈肚子里尿尿的样子 | 今日最佳
  6. DNS的几个基本概念:
  7. python通信编程_python 通信编程
  8. [转]ASP.NET实用技巧
  9. 云图说 | 快速创建一个kubernetes集群
  10. .html()与.text()区别与辨析
  11. TensorFlow tf.keras.layers.DenseFeatures
  12. Js原生元素选择器 _$获取id class attr 属性集合
  13. 读后有感 - UI设计师必知:线框图、原型和视觉稿
  14. ue4 迁移模型_UE4换装系统(合并骨骼模型)
  15. 检查服务产生的core文件并做短信处理(shell)
  16. python:关于读取文件的指定行的问题
  17. php session string,教你如何使用php session
  18. slxrom+v.21+原生android+4.2,小米4移动联通版 魔趣OS 安卓10 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
  19. python电力系统分析_PyPSA电力系统分析简介
  20. SAP中物料质检视图中检验设置和QM采购的应用区别

热门文章

  1. thinkphp的like用法
  2. [转]SQL:JOIN用法
  3. Android下拉刷新上拉更多瀑布流(附源码)
  4. 搜狗输入法不能输入验证码,验证码错误怎么办?
  5. simple_html_dom.php 使用 乱码处理作者:gaoming13
  6. 大道至简 爱上Metro
  7. AspNet MVC2 学习笔记
  8. Win8 忘记密码 解决办法【在E450c实测有效】
  9. 转 android有用代码片段
  10. AC-WEB使用HTTPS登录