HTMLTestRunner报告
HTMLTestRunner是Python标准库的unittest单元测试框架的一个扩展。它生成易于使用的HTML测试报告。HTMLTestRunner是在BSD许可证下发布。
示例测试报告地址:http://tungwaiyip.info/software/sample_test_report.html
首先要下载HTMLTestRunner.py文件。
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
注意:下载后的HTMLTestRunner.py文件对Python 3并不支持,使用的时候报错:ImportError: No module named 'StringIO'。本章示例使用针对Python 3修改好的HTMLTestRunner.py文件。
HTMLTestRunner.py是一个.py文件,将它放到Python安装目录的Lib文件夹下即可调用。
打开命令行,输入python,输入import HTMLTestRunner。如图所示:无任何的错误提示信息,就表示成功。
1、首先新建一个Python项目
如:My_Report_HTMLTestRunner_Demo。
创建case包,用于存放测试用例(test_case1.py、test_case2.py)。
创建plugins包,用于存放生成测试报告扩展文件(HTMLTestRunner.py)。
创建report文件夹,执行脚本指定测试报告生成在此文件夹里。
创建run_all.py为执行测试用例文件。
2.1、test_case1.py(测试用例)
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
测试用例1
"""
from selenium import webdriver
import unittest
class Test1(unittest.TestCase):
'''测试用例1测试'''
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
@classmethod
def tearDownClass(cls):
cls.driver.quit()
def test_01(self):
'''失败用例'''
self.driver.get('https://www.baidu.com')
self.driver.find_element_by_id('kw1').send_keys('百度一下')
self.assertTrue(True)
def test_02(self):
'''失败用例'''
self.driver.get('https://mail.126.com/')
self.assertIn('163',self.driver.title)
def test_03(self):
'''成功用例'''
self.driver.get('https://cn.bing.com/')
self.assertIn('Bing',self.driver.title)
if __name__ == '__main__':
unittest.main(verbosity=2)
2.2、test_case2.py(测试用例)
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
测试用例2
"""
from selenium import webdriver
import unittest
class Test2(unittest.TestCase):
'''测试用例2测试'''
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
@classmethod
def tearDownClass(cls):
cls.driver.quit()
def test_01(self):
'''成功用例'''
self.driver.get('https://www.baidu.com')
self.driver.find_element_by_id('kw').send_keys('百度一下')
def test_02(self):
'''成功用例'''
self.driver.get('https://cn.bing.com/')
if __name__ == '__main__':
unittest.main(verbosity=2)
2.3、run_all.py(执行用例)
引入HTMLTestRunner,设置报告名称、描述、报告路径、输出报告详细程度等。
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
执行用例
"""
import unittest, time
import os
from plugins import HTMLTestRunner
# 或者将HTMLTestRunner文件拷贝到Python安装目录里的Lib文件夹下
# import HTMLTestRunner
# 获取路径
cur_path = os.path.dirname(os.path.realpath(__file__))
# 测试用例路径
case_path = os.path.join(cur_path, 'case')
# 测试报告路径
report_path = os.path.join(cur_path, 'report')
if __name__ == "__main__":
# 构造测试集
suite = unittest.defaultTestLoader.discover(case_path,'test*.py')
# 获取当前时间
now = time.strftime('%Y-%m-%d %H_%M_%S')
# 定义测试报告
runner = HTMLTestRunner.HTMLTestRunner(title='自动化测试报告',
description='用例执行情况:',
stream=open(report_path + '\\' + now + ' HTMLReport.html', 'wb'),
verbosity=2
)
# 运行测试用例
runner.run(suite)
3、执行run_all.py文件
运行结果:
在项目的report目录里自动生成测试报告。
双击打开测试报告,效果如下:
本文分享自 AllTests软件测试 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!