[接口测试_B] 07 Pytest的测试报告

pytest命令行运行时,可以直接在控制台中查看到输出的结果,但这样的结果并不直观,也不易于保存用于后续分析和分享。如pytest -s -q test_xx.py的输出结果。

Pytest的报告输出方式

  • JunitXml格式的报告文件:pytest --junitxml=path
  • resultlog文本格式的报告文件:pytest --resultlog=path(不常用,预计在4.0移除)
  • url格式的报告文件,为每个用例或指定用例生成一个url:pytest --pastebin=all,只输出失败的,可以将all换为failed
  • 第三方插件:pytest-html

Pytest测试报告示例

1、JunitXML格式的测试报告

  • JunitXML格式的报告是在pytest命令后加上--junitxml=path。
  • 运行测试集中的用例:pytest -q --tb=no --junitxml='E:\python_interface_test\results\makejunitstyle.xml'
  • --tb=no是不输出traceback信息
  • 看图:4个用例失败,25个用例通过,1个用例xfailed,1个用例错误

junit.png

  • 查看生成的报告,报告路径和名称为--junitxml=之后设定的
  • 看图: 1)、testsuit中的信息包含:总运行时间、总用例数、跳过或执行不成功的用例数; 2)、testcase中的信息包括:case运行时间、case名、case所在的行数、case所在的模块名、case所在的类名; 3)、如果case有输出信息或错误信息,也会在对应的元素中显示,参见有输出或错误的用例。

xmlreport.png

2、resultlog文本格式的测试报告(预计在4.0移除)

  • 运行命令:pytest -q --tb=no --resultlog='E:\python_interface_test\results\resultlog2.txt'

resultlog.png

  • 查看结果:(完全看不懂,不要关注这种生成方式了)

logreport.png

3、url格式的测试报告

  • url格式的报告是将测试结果发送给pastebin服务器,在用例执行完成后,生成一个url地址
  • 运行命令:pytest --pastebin=all,如果只想看失败的信息把all换成failed

url.png

  • 查看结果:输出信息和控制台中的traceback一样,只是保存在了服务器上,看起来还是比较乱

urlreport.png

4、pytest-html第三方插件生成的测试报告

  • 秉持拿来主义的精神,这个报告应该会好看一点
4.1.安装pytest-html

pytest插件的安装和卸载方式为:

pip install pytest-NAME
pip uninstall pytest-NAME

so,安装pytest-html:

python -m pip install pytest-html
4.2.pytest-html的使用

pytest-html顾名思义,生成的报告格式为html的。

  • 运行命令:pytest -q --tb=no --html=E:\python_interface_test\results\makehtml.html

html.png

  • 查看结果:结果中分为3部分,Environment、Summary、Results; 1)、在html报告中会有报告生成日期及采用的pytest-html版本; 2)、Environment:记录了运行的环境信息; 3)、Summary:描述了运行用例数、时间及用例的状态; 4)、Results:记录了每个用例的执行状态、用例名称及路径、执行时间;(ps:执行时间只精确到2位小数,所以好多用例的时间都为0)

htmlreport.png

总结

从上面的介绍中看出,JunitXML和pytest-html的可读性和可分析性更好。

  • JunitXML可用于持续集成,格式为xml;
  • pytest-html界面美观,执行信息及结果信息全面。

作者: 乐大爷 博客:https://www.jianshu.com/u/39cef8a56bf9 声明:本文已获作者授权转载,著作权归作者所有。

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2018-04-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏全华班

一款免费、开源,使用JAVA语言开发管理系统

基于SpringBoot2.0的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用

1.6K2
来自专栏快乐八哥

Angular企业级开发(1)-AngularJS简介

AngularJS介绍 AngularJS是一个功能完善的JavaScript前端框架,同时是基于MVC(Model-View-Controller理念的框架,...

2258
来自专栏知晓程序

小程序删除后,会发生什么? | 小程序问答 #25

今天,知晓程序(微信号 zxcx0101)就来为你详细解释,小程序删除之后,到底会发生什么事情。

731
来自专栏Vamei实验室

安卓第二夜 有趣的架构

学习安卓的架构,是从操作系统的角度理解安卓。安卓使用Linux内核,但安卓的架构又与常见的Linux系统有很大的区别。我们先来回顾一下传统的Linux架构,再来...

24510
来自专栏月色的自留地

mac电脑进行可见光通信实验要点

1136
来自专栏情情说

RabbitMQ实战:消息通信模式和最佳实践

通过前2篇的介绍,了解了消息通信的主要元素和交互过程,以及如何运行和管理RabbitMQ,这篇将站在开发模式的角度理解「面向消息通信」带来的好处,以及在各种场景...

5455
来自专栏听雨堂

Android新手之旅(1) 开发环境的安装

  大致情况:安装Android开发环境,网上有很多的教程,装eclipse,jdk…别的问题都不大,最麻烦的是装sdk,因为安装是一个在线安装过程,而要安装的...

1987
来自专栏全华班

springcloud学习手册-实现Config server的高可用

一、GIT是什么 Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds ...

3555
来自专栏快乐八哥

Ubuntu12.04安装QQ for Linux

最近把自己的笔记本安装了一个Ubuntu,现在的笔记本有2个系统。一个是Window XP,一个是Ubuntu 12.04。其实就是安装的双系统,因为自己工作是...

4385
来自专栏月色的自留地

mac电脑进行可见光通信实验要点

2094

扫码关注云+社区

领取腾讯云代金券