前言

批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成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. 如何屏蔽 iOS 软件自动更新,去除更新通知和标记

    适用于 iOS.iPadOS 和 watchOS,即 iPhone.iPad 和 Apple Watch 通用. 请访问原文链接:https://sysin.org/article/Disable-i ...

  2. Web前端自动化测试Cypress实践总结

    本文主要首先主要介绍了什么是自动化测试,接着对常用的自动化测试框架进行了对比分析,最后,介绍了如果将自动化测试框架Cypress运用在项目中. 一.自动化测试概述 为了保障软件质量,并减少重复性的测试 ...

  3. 能够划分局域网的VLAN

    VLAN与三层交换机 1. VLAN的概述与优势 1.1 分割广播域 1.2 VLAN的优势 2. VLAN的种类 2.1 静态VLAN 2.2 动态VLAN 3. VLAN的ID 4.三层交换机转发 ...

  4. [leetcode] 875. 爱吃香蕉的珂珂(周赛)

    875. 爱吃香蕉的珂珂 这题时间要求比较严格... 首先,将piles排序,然后二分查找. 总之,答案K肯定位于piles[?]piles[?+1]或者1piles[0]之间 所以我们先二分把?找到 ...

  5. MongoDB学习笔记:Python 操作MongoDB

    MongoDB学习笔记:Python 操作MongoDB   Pymongo 安装 安装pymongopip install pymongoPyMongo是驱动程序,使python程序能够使用Mong ...

  6. js发送请求给服务端

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 如何使用Nsight System?

    如何使用Nsight System?

  8. python_pycham,连接数据库,执行sql

    本地搭建的mysql的新建的表的数据如下: 在pycham中连接mysql 执行sql  ,举例编写如下: import pymysql if __name__ == '__main__': conn ...

  9. 【NX二次开发】Block UI 文本颜色/字体/宽度

    属性说明 常规     类型 描述     BlockID     String 控件ID     Enable     Logical 是否可操作     Group     Logical 是否分 ...

  10. Golang中GBK和UTF8编码格式互转

    Golang中GBK和UTF8编码格式互转 需求 已知byte数组的编码格式转换 实现代码 package utils import ( "bytes" "golang. ...