Python单元测试框架unittest之生成测试报告(HTMLTestRunner)

前言

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

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

 

一、安装HTMLTestRunner

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

 

Python单元测试框架unittest之生成测试报告(HTMLTestRunner)_第1张图片

 

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)_第2张图片

 

转载于:https://www.cnblogs.com/muchengnanfeng/p/9566391.html

你可能感兴趣的:(测试,python,开发工具)