接口测试 Pytest的测试报告

转载 2018年04月15日 18:15:26

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界面美观,执行信息及结果信息全面。

使用pytest+requests进行接口测试实践——测试get请求

Jinkens是一个非常流行的持续集成工具,它提供了好多API以便对其进行二次开发。由于其提供了API接口,我们可以将其作为我们的测试对象,来学习如何使用requests进行接口测试。 首先要安装好j...
  • liuchunming033
  • liuchunming033
  • 2015-09-01 15:38:35
  • 3748

Python单元测试框架Pytest——如何生成测试报告

本文讲述pytest如何生成测试报告。 首先准备一段测试代码: import py.test class TestCase(object): def test_eq_set(self): ...
  • liuchunming033
  • liuchunming033
  • 2015-08-31 18:34:21
  • 4070

使用pytest+requests进行接口测试实践——测试post请求

还是以Jenkins接口测试为例,Jenkins提供了“禁用”和“启用”job的接口,这个接口的方法是POST方法。我们就以这个接口为例。 我们先点击任何一个job,比如“PythonRun”这个jo...
  • liuchunming033
  • liuchunming033
  • 2015-09-01 15:59:21
  • 2911

excle+pytest+jenkins+allure接口自动化测试框架

概述框架采用excle+pytest+jenkins+allure的结构,使用数据驱动方式进行开发测试。能够达到单个接口的多种测试数据的组合测试,以及基于业务流程的接口组合测试。考虑到测试人员编写测试...
  • HuJinke_
  • HuJinke_
  • 2017-04-22 12:00:59
  • 3051

allure用例定制参数及报告效果展示

Allure + Pytest 使用demoAllure Pytest 使用demo 目的 python版本及必要库 效果图 数据总览中的环境参数 类别中的失败用例展示 测试套中的测试名id号优先级...
  • lihua_tan
  • lihua_tan
  • 2017-07-25 21:40:26
  • 1427

用Pytest+Allure生成漂亮的HTML图形化测试报告

对于软件测试来说,测试报告是非常重要的工作产出。一个漂亮、清晰、格式规范的测试报告,能够减少开发人员和测试人员的沟通成本。 本篇文章将介绍如何使用开源的测试报告生成框架Allure生成规范、...
  • liuchunming033
  • liuchunming033
  • 2018-03-20 20:23:14
  • 248

python 接口测试框架测试报告 (二)

这个版本的优化 测试报告基于excel测试通过后用email的方式通知 核心代码 import unittest import time from controller import con...
  • Huilaojia123
  • Huilaojia123
  • 2017-02-06 18:13:42
  • 1240

python测试报告中文乱码问题

下载HTMLTestRunner.py 第三方库 ,参考地址:http://tungwaiyip.info/software/HTMLTestRunner.html 报告显示中文乱码问题的解...
  • MiaoDaLengShui
  • MiaoDaLengShui
  • 2016-06-23 10:46:44
  • 439

UI自动化测试报告生成

allure--开源 report 框架阶段性总结介绍 · TesterHome  https://testerhome.com/topics/5738生成比较美观的 appium 自动化测试报告,并...
  • An381505992
  • An381505992
  • 2018-03-21 10:20:00
  • 15

Jenkins执行testNG生成美观的测试报告(Allure2)

一.Jinkens配置 1.插件管理下载aullre插件 2.全局工具配置中安装Allure Commandline 3.创建任务 3.1 配置工程路径 ...
  • qq_15290529
  • qq_15290529
  • 2018-01-07 14:03:33
  • 586
收藏助手
不良信息举报
您举报文章:接口测试 Pytest的测试报告
举报原因:
原因补充:

(最多只允许输入30个字)