前言

批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。

unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner,HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展,它可以生成 HTML的 测试报告。

一、安装HTMLTestRunner

这个模块下载不能通过pip安装了,只能下载后手动导入,下载地址如下:
python2版下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 
python3版下载地址:http://pan.baidu.com/s/1dEZQ0pz

HTMLTestRunner.py文件就是我们需要下载的包,将下载的文件放入…\python\Lib目录下 ,如C:\Python27\Lib,test_HTMLTestRunner.py是官方提供的HTMLTestRunner使用示例demo。

在python环境下,输入 import  HTMLTestRunner 不报错即安装成功。

二、使用该模块生成报告:

1、目录结构
  • case包下面有baidu,wangyi两个包
  • 每个包下面分别有两个测试的py文件
  • 每个testx.py文件里各有2个test case
  • run_all_case.py文件:用来执行所有的test case且生成测试报告

run_all_case.py文件脚本如下:

 1 # coding:utf-8
2
3 import unittest
4 import os
5 import time
6 import HTMLTestRunner
7
8 # 用例路径
9 case_path = os.path.join(os.getcwd())
10 # 报告存放路径
11 report_path = os.path.join(os.getcwd(), 'report')
12 print report_path
13
14 def all_case():
15 discover = unittest.defaultTestLoader.discover(case_path, pattern="test*.py", top_level_dir=None)
16 print discover
17 return discover
18
19 if __name__ == '__main__':
20 # 1、获取当前时间,这样便于下面的使用。
21 print report_path
22 now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
23
24 # 2、html报告文件路径
25 report_abspath = os.path.join(report_path, "result_"+now+".html")
26
27 # 3、如果没有report_path,则创建此目录
28 if (not os.path.exists(report_path)):
29 os.makedirs(report_path)
30
31 # 4、打开一个文件,将result写入此file中
32 fp = open(report_abspath,"w")
33 runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
34 title=u'接口自动化测试报告,测试结果如下:',
35 description=u'用例执行情况:')
36 # 5、调用add_case函数返回值
37 runner.run(all_case())
38 fp.close()

2、运行后生成报告如下

Python单元测试框架unittest之生成测试报告(HTMLTestRunner)的更多相关文章

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

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

  2. Python单元测试框架unittest之深入学习

    前言 前几篇文章该要地介绍了python单元测试框架unittest的使用,本篇文章系统介绍unittest框架. 一.unittest核心工作原理 unittest中最核心的四个概念是:test c ...

  3. Python单元测试框架unittest使用方法讲解

    这篇文章主要介绍了Python单元测试框架unittest使用方法讲解,本文讲解了unittest概述.命令行接口.测试案例自动搜索.创建测试代码.构建测试套件方法等内容,需要的朋友可以参考下   概 ...

  4. Python单元测试框架unittest之单用例管理(一)

    一.概述 本文介绍python的单元测试框架unittest,unittest原名为PyUnit,是由java的JUnit衍生而来,这是Python自带的标准模块unittest.unittest是基 ...

  5. Python3 Selenium自动化web测试 ==> 第一节 起始点之Python单元测试框架 unittest

    前置步骤 Python版本:3.6.4 selenium版本:3.11.0 >>> import selenium >>> help(selenium) IDE:P ...

  6. Python单元测试框架unittest重要属性 与 用例编写思路

    前言 本文为转载,原文地址作者列举python unittest这个测试框架的主要属性和 测试用例思路 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行, ...

  7. Python单元测试框架unittest

    学习接口自动化测试时接触了unittest单元测试框架,学习时参照了虫师编写的<selenium2自动化测试实战>,个人觉得里面讲的例子还比较容易理解的. 一.基础 1.main()和框架 ...

  8. python单元测试框架-unittest(一)

    简介 unittest单元测试框架不仅可以适用于单元测试,还可以使用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. ...

  9. Python单元测试框架——unittest

    测试的常用规则 一个测试单元必须关注一个很小的功能函数,证明它是正确的: 每个测试单元必须是完全独立的,必须能单独运行.这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作.通常通过se ...

随机推荐

  1. Django(44)drf序列化源码分析(1)

    序列化与反序列化   一般后端数据返回给前端的数据格式都是json格式,简单易懂,但是我们使用的语言本身并不是json格式,像我们使用的Python如果直接返回给前端,前端用的javascript语言 ...

  2. 解决Error running 'Tomcat 9': Address localhost:8080 is already in use的问题

    在我学习servlet的过程中遇到了tomacat端口8080被占用的情况,所以记录下来,毕竟以后还会碰见这种貌似情况 第一步,打开命令行界面,可快捷键window+R打开输入cmd进入 输入代码:n ...

  3. zookeeper之二:zookeeper3.7.0安装过程实操

    前面分享了zookeeper的基本知识,下面分享有关zookeeper安装的知识. 1.下载 zookeeper的官网是:https://zookeeper.apache.org/ 在官网上找到下载链 ...

  4. Step By Step(Lua-C API简介)

    Step By Step(Lua-C API简介) Lua是一种嵌入式脚本语言,即Lua不是可以单独运行的程序,在实际应用中,主要存在两种应用形式.第一种形式是,C/C++作为主程序,调用Lua代码, ...

  5. 情景剧:C/C++中的未定义行为(undefined behavior)

    写在前面 本文尝试以情景剧的方式,轻松.直观地解释C/C++中未定义行为(undefined behavior)的概念.设计动机.优缺点等内容1,希望读者能够通过阅读本文,对undefined beh ...

  6. TVM量化小结手册

    TVM量化小结手册 文章目录 Offical References TVM quantization roadmap INT8 quantization proposal Quantization S ...

  7. .Net Redis实战指南——常用命令

    本问主要介绍rabbitmqctl工具的常用命令. vhost 一个RabbitMQ服务器可以创建多个虚拟的消息服务器,称之为虚拟主机(virtual host),简称为vhost.vhost之间是绝 ...

  8. .NET Core/.NET5/.NET6 开源项目汇总1:常用必备组件

    系列目录     [已更新最新开发文章,点击查看详细] 开源项目是众多组织与个人分享的组件或项目,作者付出的心血我们是无法体会的,所以首先大家要心存感激.尊重.请严格遵守每个项目的开源协议后再使用.尊 ...

  9. noip2008 总结

    noip 2008题解 笨小猴 原题 笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼.但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设 ...

  10. 基于Istio构建微服务安全加固平台的探索

    简介 An open platform to connect, secure, control and observe services. Istio 是一个由谷歌.IBM 与Lyft共同开发的开源项 ...