HTMLTestRunner生成测试报告

1、HTMLTestRunner介绍
HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展,它可以生成 HTML的 测试报告,无法通过pip安装。
首先要下 HTMLTestRunner.py 文件,将下载的文件放入…\python\Lib目录下 (或者同个路径)

生成步骤分析

  1. 导入HTMLTestRunner,UnitTest包
  2. discover加载要执行的用例
    discover = unittest.defaultTestLoader.discover(test_dir,pattern="test*.py")
  3. 设置测试报告生成路径和文件名
    file_name = file_dir + nowtime+"Report.html"
  4. 打开报告 with open(file_name,"wb") as f:
  5. 实例化HTMLTestRunner对象
    runner = HTMLTestRunner(stream = f,[title],[description])
    参数说明 stream:文件流,打开写入报告的名称及写入编码格式
    []:为可选
    title:为报告标题
    description:为说明,比如操作系统
  6. 执行
    runner.run(discover)
HTMLTestRunner与TextTestRunner的区别

前者输出到HTML中,后者输出到控制台。

注意点:

python2和python3,语法不一样,导致HTMLTestRunner在python3不兼容


image.png
# -*- coding: UTF-8 -*-
import unittest
import HTMLTestRunner
import time
class XdclassTestCase(unittest.TestCase):
    def setUp(self):
        self.age = 32
        self.name = "小D课堂"
        print(" setUp method=======")


    def tearDown(self):
        print(" tearDown method=======")
        #断言是否相同,把foo转成大写,与FOO匹配是否一样
        self.assertEqual('foo'.upper(), 'FOO')


    def test_one(self):        
        print(" test_one 二当家小D 来了")
        #断言是否相同
        self.assertEqual(self.name, "小D课堂",msg="名字不对")


    def test_two(self):
        print(" test_two 前端 来了")
        #断言是否为 true, msg是断言错误的提示信息
        self.assertTrue('xd'.isupper(), msg="不是大写")
        

    def test_three(self):
        print(" test_three 后端 来了")
        self.assertEqual(self.age,32)



    def test_four(self):
        print(" test_four 小D课堂官网上线啦 https://www.xdclass.net")
        self.assertEqual(self.age,32)




if __name__ == '__main__':
    suite = unittest.TestSuite()#相当于一个容器,可以往里放测试用例
    suite.addTest(XdclassTestCase("test_two"))
    suite.addTest(XdclassTestCase("test_one"))
    
    suite.addTest(XdclassTestCase("test_three"))
    suite.addTest(XdclassTestCase("test_four"))

    #verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告(默认)、2 是详细报告
    # runner = unittest.TextTestRunner(verbosity=2)
    # runner.run(suite)
    #生成测试报告
    file_prefix = time.strftime("%Y_%m_%d %H_%M_%S",time.localtime())
    print(file_prefix)

    fp = open("D:\\自动化测试资料\\自动化测试资料\\" + file_prefix + "_result.html","wb")
    runner = HTMLTestRunner.HTMLTestRunner(stream = fp,title = "测试报告",description="测试用例执行情况")
    runner.run(suite)
    fp.close()

#结果
2020_01_26 17_14_21
F
...
Time Elapsed: 0:00:00.001999

测试报告结果


image.png
优化
image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容