前言

上一篇文章pytest简介中,执行测试用例后,在 pycharm 控制台(方式一)或 Terminal(方式二)中可以查看测试结果。但是在实际的接口自动化项目中一般需要生成直观的测试报告,这个测试报告聚合了所有测试用例的执行情况。

在 pytest 中提供了生成html格式测试报告的插件 pytest-html

安装

安装命令如下:

pip install pytest-html

使用

我们已经知道执行用例的两种方式,pytest.main()执行和命令行执行,而要使用pytest-html生成报告,只需要在执行时加入参数--html=报告完整路径,所以同样有两种生成报告的方式。

  • 命令行生成

    # 指定报告名称,生成在当前目录下
    pytest --html=接口自动化测试报告.html # 指定报告生成路径
    pytest --html=E:/report/接口自动化测试报告.html
  • pytest.main()生成

    使用pytest.main()同样也可以生成测试用例,但需要注意,直接在测试用例里面执行pytest.main([--html=报告名称.html"])不会生成测试报告,而是需要在项目执行文件如run.py中使用pytest.main([--html=接口自动化测试报告.html"]),然后再运行run.py文件,才会生成报告。例如:

    test_demo.py代码如下

    import pytest
    import requests, json class TestDemo: def test_get_all_users(self):
    '''查询所有用户信息'''
    url = "http://127.0.0.1:5000/users"
    res = requests.get(url=url).text
    res = json.loads(res)
    assert res['code'] == 0 def test_register(self):
    '''注册用户'''
    headers = {"Content-Type": "application/json;charset=utf8"}
    url = "http://127.0.0.1:5000/register"
    data = {
    "username": "张学友",
    "password": "123456",
    "sex": "0",
    "telephone": "13823456789",
    "address": "北京东城区"
    }
    res = requests.post(url=url, headers=headers, json=data).text
    res = json.loads(res)
    assert res['code'] == 0 if __name__ == '__main__':
    pytest.main(["--html=接口自动化测试报告.html"])

    这里直接运行test_demo.py不能生成测试报告,需要编写专门的运行模块,run.py代码如下:

    import pytest
    
    if __name__ == '__main__':
    pytest.main(['--html=接口自动化测试报告.html'])

报告展示

运行后会生成 assets 的文件夹以及 .html 文件,.html 文件就是测试报告,结果如下:

在浏览器中打开后展示如下:

点击报告Results中对应的测试用例,能展示具体的执行日志。

总结

使用pytest-html生成的测试报告相对较为简洁,展示内容也相对精简,对报告样式要求不高的话完全够用了。

当然,pytest 还可以结合 Allure 生成更为强大的测试报告,这个留后面探究。

pytest-html 测试报告的更多相关文章

  1. Python单元测试框架之pytest -- 生成测试报告

    继续pytest单元测试框架的学习,pytest可以生成多种类型的测试报告.这一节就来学习pytest如何生成测试报告. 创建test_calss.py 测试用例文件,这里以测试该文件为例. #cod ...

  2. pytest生成测试报告

    生成JunitXML格式的测试报告    --junitxml=report\h.xml 生成result log 格式的测试报告     --resultlog=report\h.log 生成htm ...

  3. Allure+pytest 生成测试报告

    简介: python 主流自动化测试报告插件有三个:HTMLTestRunner.BeautifulReport 和 Allure.HTMLTestRunner是一个比较古老的报告模板,界面也不是很好 ...

  4. Python单元测试框架pytest常用测试报告类型

    先前博客有介绍pytest测试框架的安装及使用,现在来聊聊pytest可以生成哪些测试报告 1.allure测试报告 关于allure报告参见先前的一篇博文:https://www.cnblogs.c ...

  5. pytest生成测试报告-4种方法

    1.生成resultlog文件 2.生成JunitXML文件 3.生成html测试报告 > pip install pytest-html     # 通过pip安装pytest-html 4. ...

  6. Python单元测试框架之pytest 2 -- 生成测试报告

    From: https://www.cnblogs.com/fnng/p/4768239.html Python单元测试框架之pytest -- 生成测试报告 2015-08-29 00:40 by ...

  7. jenkins展示report测试报告的配置

    HTML报告展示 1. 需要HTML Publisher plugin插件 2. 在workspace下的工程(构建)中的目录中存储测试报告 在Jenkins中新建一个job,进入配置项. 首先通过p ...

  8. pytest 使用

    import pytestfrom web_ui_YXBI.test_datas.common_datas import Common_Datas as cfrom selenium import w ...

  9. Pytest学习笔记10-生成html报告

    前言 在pytest中,如何生成html测试报告呢,pytest提供了pytest-html插件,可以帮助我们生成测试报告,当然,如果希望生成更加精美的测试报告,我们还可以使用allure生成报告,下 ...

  10. [python]Pytest+selenium+git+jenkins持续集成

    1安装pytest框架 &pip install pytest   #pytest &pip install pytest-html  #pytest html测试报告 2.工程介绍 ...

随机推荐

  1. 集合不安全之 ArrayList及其三种解决方案【CopyOnWriteArrayList 、synchronizedList、Vector 】

    @ 目录 一.前言 二.为什么线程不安全 三.解决方案一CopyOnWriteArrayList (推荐,读多写少场景) 四.Collections.synchronizedList(加锁) 五.Ve ...

  2. MongoDB与微服务

    1. 微服务的优势 * 开发速度快 * 变化响应快 * 易维护 * 扩容简单2. 微服务架构设计要素 * 服务解耦(Decouple) * HTTP API - 简单接口(Dumb Pipes) * ...

  3. 初识python: 多态

    多态:允许你将父对象设置成为,与一个或更多其子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作.    简单讲就是:允许将子类类型的指针赋值给父类类型的指针. 多态 ...

  4. httprunner2.0 概述及使用说明

    一.概述 HttpRunner是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试.性能测试.线上监控.持续集成等多种测试需求. 二.系统流程 ...

  5. JS中void(0)操作符的使用

    今天 在看源码时,发现这种写法 if(value === void(0)){ // } 以前没有见过这种写法,感觉就是判断一个变量是否有值,官网上是这样说的: void运算符 对给定的表达式进行求值, ...

  6. ModelForm has no model class specified

    未指定模型类,错误发生在把model拼写错误 来自为知笔记(Wiz)

  7. 怎样用命令行导入注册表 .reg 文件

    https://stackoverflow.com/questions/49676660/how-to-run-the-reg-file-using-powershell Get-Command re ...

  8. JQuery实现奇偶行不同背景颜色

    假设table的id为:t1 $(document).ready(function(){ $('#t1 > tbody tr:even').css('background','white'); ...

  9. 07.python函数作用域global、nonlocal、LEGB

    函数作用域 作用域 一个标识符的课件范围,这就是标识符的作用域,一般常说的是变量的作用域 def foo():    x = 100 print(x) # 可以访问到吗 上例中x不可以访问到,会抛出异 ...

  10. 解读与部署(三):基于 Kubernetes 的微服务部署即代码

    在基于 Kubernetes 的基础设施即代码一文中,我概要地介绍了基于 Kubernetes 的 .NET Core 微服务和 CI/CD 动手实践工作坊使用的基础设施是如何使用代码描述的,以及它的 ...