(原文:https://www.cnblogs.com/fancy0158/p/10054632.html)

测试任务执行完成后,我们需要一份通俗易懂的测试报告来展示自动化测试的结果。

HTMLTestRunner是Python的单元测试框架unittest的一个扩展,它生成易于使用的HTML测试报告。与TextTestRunner一样提供run()方法来执行测试套件或测试用例,返回特定的值表示执行结果。

一、HTMLTestRunner配置

1、HTMLTestRunner.py的下载

下载地址:

python2:http://tungwaiyip.info/software/HTMLTestRunner.html

右键另存为下载HTMLTestRunner.py,将文件放到...\python\Lib目录下

python3:https://pan.baidu.com/s/1k4m6JFelcWH_QiHGlvjsUQ

HTMLTestRunner是基于Python2开发的,要支持python3,需要修改HTMLTestRunner.py文件中的部分内容。上面下载链接为已修改文件,将文件放到...\python\Lib目录下。

在python交互模式下导入HTMLTestRunner模块,系统没有报错则说明添加成功。

>>> import HTMLTestRunner
>>>

2、生成HTML测试报告

 
# coding:utf-8
import unittest, time
from appium import webdriver
from HTMLTestRunner import HTMLTestRunner
if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(TestCalculator('test_add'))
    # 执行测试,使用HTMLTestRunner生成测试报告
    fp = open('./result.html', 'wb')
    runner = HTMLTestRunner(stream=fp, title='计算器测试报告', description='测试用例执行情况')
    runner.run(suite)
    fp.close()
 
  • open(),自动创建并打开以二进制模式打开指定目录下的result.html文件
  • 初始化一个HTMLTestRunner对象runner,stream制定测试报告文件,title定义测试报告的标题,description定义测试报告的副标题
  • HTMLTestRunner的run()方法运行测试套件
  • fp.close()关闭测试报告文件

测试执行完成后,打开目录中生成的result.html文件查看测试报告

二、优化测试报告

1、测试报告文件命名优化

上面将测试报告文件命名为result.html,每次生成报告时会将之前的报告覆盖掉。我们在测试运行前将原来的测试报告修改名字以保存,但是这样将花费时间且可能会忘记。我们将测试报告文件名加上当前时间,使生成的报告更不会重叠,更清晰。

Python中的time模块提供了丰富的关于时间的操作

 
>>> import time
>>> time.time()
1543739732.9201088
>>> time.ctime()
'Sun Dec  2 16:35:39 2018'
>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=2, tm_hour=16, tm_min=35, tm_sec=48, tm_wday=6, tm_yday=336, tm_isdst=0)
>>> time.strftime("%Y-%m-%d %H:%M:%S")
'2018-12-02 16:36:57'
>>>
 

代码修改如下:

 
if __name__ == '__main__':
    suite = unittest.TestSuite()
    suite.addTest(TestCalculator('test_add'))
    suite.addTest(TestCalculator('test_sub'))
    # 执行测试,使用HTMLTestRunner生成测试报告
    now_time = time.strftime("%Y%m%d_%H-%M-%S")
    file_path = open('./'+now_time+'_TestResult.html', 'wb')
    runner = HTMLTestRunner(
        stream=file_path,  # 文件
        title='计算器测试报告',   # 标题
        description='测试用例执行情况',   # 副标题
    )
    runner.run(suite)
    file_path.close()
 

 运行后生成的报告文件为:

 2、测试报告优化

python的注释有两种,一种是comment,一种是doc string。comment是普通的注释,doc string用于函数、类和方法的描述。

在类和方法下方添加""" """或''' '''来添加doc string类型的注释。HTMLTestRunner可以读取doc string类型的注释

class TestCalculator(unittest.TestCase):
    """计算器应用case"""

    def test_add(self):
        ''' 加运算 '''

运算后报告如下: