前言

批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成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. Java List去重以及效率分析

    List去重无非几种方法: 下面文章提供的两种: https://blog.csdn.net/u012156163/article/details/78338574, 以及使用List.stream. ...

  2. 永远的Ace 实验五 团队作业2:XXX企业设施设备云上资料室

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST/ 这个作业要求链接 https://www.cnblogs.com/nwnu-da ...

  3. 浅谈:Redis持久化机制(二)AOF篇

    浅谈:Redis持久化机制(二)AOF篇 ​ 上一篇我们提及到了redis的默认持久化方式RDB,是一种通过存储快照数据方式持久化的机制,它在宕机后会丢失掉最后一次更新RDB文件后的数据,这也是由于它 ...

  4. JNDI注入和JNDI注入Bypass

    之前分析了fastjson,jackson,都依赖于JDNI注入,即LDAP/RMI等伪协议 JNDI RMI基础和fastjson低版本的分析:https://www.cnblogs.com/pia ...

  5. Auto ML自动调参

    Auto ML自动调参 本文介绍Auto ML自动调参的算法介绍及操作流程. 操作步骤 登录PAI控制台. 单击左侧导航栏的实验并选择某个实验. 本文以雾霾天气预测实验为例. 在实验画布区,单击左上角 ...

  6. JAVA并发(6)-并发队列ArrayBlockingQueue

    本文讲ArrayBlockingQueue 1. 介绍 一个基于数组的有界阻塞队列,FIFO顺序.支持等待消费者和生产者线程的可选公平策略(默认是非公平的).公平的话通常会降低吞吐量,但是可以减少可变 ...

  7. java8 函数式编程接口

    java8 函数式接口java.util.function.* @param T 入参类型 @param R 出参类型 1. Function <T,R> 例: Function<I ...

  8. 【Python报错】RuntimeError: DataLoader worker (pid(s) 9764, 15128) exited unexpectedly

    batch_size = 2# 256 def get_dataloader_workers(): #@save """使用4个进程来读取数据.""& ...

  9. 一篇文章快速搞懂 Apache SkyWalking 的 OAL

    OAL简介 在流模式(Streaming mode)下,SkyWalking 提供了 观测分析语言(Observability Analysis Language,OAL) 来分析流入的数据. OAL ...

  10. external-attacher源码分析(1)-main方法与启动参数分析

    更多 ceph-csi 其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 摘要 ceph-csi分析-external-attacher源码分析.external- ...