使用 HTMLTestRunner 自动生成测试报告

在做自动化测试时,我们通常希望以可视化的形式来展示测试结果,这时候 HTMLTestRunner 就有很大的用武之地了。它是 Python 标准库中 unittest 模块的一个扩展,可用于生成 HTML 测试报告。

1

配置  HTMLTestRunner

虽然 HTMLTestRunner 很强大,但有个小问题,它是基于 Python2 的,所以无法直接在 Python3 中直接使用(网上下载的很多都用不了)。

那就升级一下吧,由于文件内容过多,所以就不直接贴代码了,点击下面的链接直接下载(已验证通过,可直接使用):

  • 戳我:https://github.com/Waleon/HTMLTestRunner

下载 HTMLTestRunner.py 之后,将其拷贝至 Python 的安装目录下,例如:/usr/local/lib/python3.7/dist-packages/,然后就可以使用了。

2

测试脚本

编写一个简单的示例脚本 - autotest.py,看是否能自动生成测试报告:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import unittest
import HTMLTestRunner
import time

class TestDemo(unittest.TestCase):
    """测试用例"""

    def setUp(self):
        print('========== begin ==========')

    def test_success(self):
        self.assertEqual(1 + 1, 2)

    def test_fail(self):
        self.assertEqual(1 + 1, 10)

    def test_error(self):
        self.assertEqual(x, 1024)

    def tearDown(self):
        print('========== end ==========')

if __name__ == '__main__':
    # 构造测试集
    suite = unittest.TestSuite()

    # 添加测试用例
    suite.addTest(TestDemo("test_success"))
    suite.addTest(TestDemo("test_fail"))
    suite.addTest(TestDemo("test_error"))

    # 报告路径
    date_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
    report_abspath = 'report_' + date_time + '.html'

    # 执行测试
    with open(report_abspath, 'wb') as f:
        runner = HTMLTestRunner.HTMLTestRunner(
            stream=f,
            title='TestDemo unit test',
            description='TestDemo report output by HTMLTestRunner.'
        )
        runner.run(suite)

3

验证一下

执行脚本,进行验证:

$ python3 autotest.py

不出意外,这时会生成一个后缀为 .html 的文件,这就是我们的测试报告,打开来看看:

像标题、描述、日期等基本信息都有,当然执行的用例也少不了,一共有 3 条,一条成功,一条失败,一条错误。

如果要查看对应用例的详细信息,可以点击蓝色的超链接按钮,尤其在有失败和错误的情况下,这个功能非常好用,能帮助我们快速定位问题!

·END·

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页
实付 59.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值