HTMLTestRunner

HTMLTestRunner是Python标准库的unittest模块的扩展。它生成易于使用的HTML测试报告。

下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

下载完成后直接放到我们代码文件夹中,也可以放在其他地方,只要我们用的时候,可以直接调用就OK

下载下来后可以先看下其中代码,能否找到一些简单的使用方法。(由于文件过大,这里我只呈现了部分我们需要用到的代码内容)

复制代码
# 输出到文件
fp = file(\'my_report.html\', \'wb\')
runner = HTMLTestRunner.HTMLTestRunner(
                stream=fp,
                title=\'My unit test\',
                description=\'This demonstrates the report output by HTMLTestRunner.\'
                )

    # 使用外部样式表。
    # 运行测试
runner.run(my_test_suite)
复制代码

当然了我们只用这么多就可以生成报告了。

小试牛刀

1、在unittest中编写测试用例

这里我还是直接调用前面写的通用代码了

复制代码
# coding:utf-8
import unittest
import requests

class   Music(unittest.TestCase):
    def select(self,name):
        url = \'https://api.apiopen.top/searchMusic\'
        data = {
             "name":name
        }
        r = requests.post(url,data=data)
        b = r.json()[\'result\'][0][\'title\']
        return b

    def test01(self):
        b = \'断桥残雪\'
        a = self.select(b)
        self.assertEqual(b,a)
        print(\'这个是用例一\')

    def test02(self):
        a = \'说好不哭\'
        b = self.select(a)
        self.assertEqual(a,b)
        print(\'这个是用例二\')

    def test03(self):
        a = \'芒种\'
        b = self.select(a)
        self.assertEqual(a,b)
        print(\'这个是用例三\')

if __name__ == \'__main__\':
        unittest.main()
复制代码

2、添加报告路径已经报告内容

通过os模块进行找到当前文件夹,使报告生成当前文件夹中

复制代码
  # 当前文件夹路径
    report_path = os.path.dirname(os.path.realpath(__file__))
    # 测试报告地址
    report_abspath = os.path.join(report_path, "result.html")
    fp = open(report_abspath, "wb")
     # 报告详情
    runner = HTMLTestRunner_cn.HTMLTestRunner(stream=fp,
                                           title=u\'自动化测试报告,测试结果如下:\',
                                           description=u\'用例执行情况:\')
复制代码

3、批量执行用例,导入测试报告内容中

通过unittest中执行用例的方法,来批量执行用例

  # 实例化
    testunit  = unittest.TestSuite()  
    # 加载用例
    testunit.addTests(unittest.TestLoader().loadTestsFromTestCase(Music))  
    # 执行用例
    runner.run(testunit)

4、当然是赶快执行查看报告内容啊

通过用例,我们可以看到这里已经完全生成报告了。

4、添加用例注释,增加报告完整性

当然肯定有的小伙伴们会说,这里不能看到通过的用例都是哪些?这个地方可以解决吗? python这么强大,这个肯定可以解决啊。不过需要我们在用例中添加注释。这样的话就会生成了详细内容。全部代码如下(添加注释后)

复制代码
# coding:utf-8
import unittest
import requests
import os
from case import HTMLTestRunner_cn

class   Music(unittest.TestCase):
    def select(self,name):
        url = \'https://api.apiopen.top/searchMusic\'
        data = {
             "name":name
        }
        r = requests.post(url,data=data)
        b = r.json()[\'result\'][0][\'title\']
        return b

    def test01(self):
        \'\'\'
        歌名:断桥残雪
        \'\'\'
        b = \'断桥残雪\'
        a = self.select(b)
        self.assertEqual(b,a)
        print(\'这个是用例一\')

    def test02(self):
        \'\'\'
        歌名:说好不哭
        \'\'\'
        a = \'说好不哭\'
        b = self.select(a)
        self.assertEqual(a,b)
        print(\'这个是用例二\')

    def test03(self):
        \'\'\'
        歌名:芒种
        \'\'\'
        a = \'芒种\'
        b = self.select(a)
        self.assertEqual(a,b)
        print(\'这个是用例三\')

if __name__ == \'__main__\':
    # 当前文件夹路径
    report_path = os.path.dirname(os.path.realpath(__file__))
    # 测试报告地址
    report_abspath = os.path.join(report_path, "result.html")
    fp = open(report_abspath, "wb")
     # 报告详情
    runner = HTMLTestRunner_cn.HTMLTestRunner(stream=fp,
                                           title=u\'自动化测试报告,测试结果如下:\',
                                           description=u\'用例执行情况:\')
    # 实例化
    testunit  = unittest.TestSuite()
    # 加载用例
    testunit .addTests(unittest.TestLoader().loadTestsFromTestCase(Music))
    # 执行用例
    runner.run(testunit)
    # 关闭报告
    fp.close()
复制代码

怀着小小的激动去查看了生成的报告,果然没有令我失望,已经完成展现出来了~~

版权声明:本文为chenxiaomeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chenxiaomeng/p/14833030.html