selenium之 输出报告,对HTMLTestRunner进行样式调整后的示例

三世轮回 提交于 2019-12-06 15:53:45

更多关于python selenium的文章,请关注我的专栏:Python Selenium自动化测试详解


修改后HTMLTestRunner下载链接:下载链接

因为觉得HTMLTestRunner原来的样式太难看,而且都是英文的报告,故而对其进行了一些小小的改动,使其输出中文报告,样式也用bootstrap做了点调整,下面用个示例展示下:

# -*- coding: utf-8 -*-
import unittest


class ExampleCase1(unittest.TestCase):
    u'''此class包含两个用例:add - ok, minus - FAIL'''
    def setUp(self):
        self.a = 4
        self.b = 3

    def test_add(self):
        u'''用例1,add,此用例成功通过'''
        self.assertEqual(self.a + self.b, 7)

    def test_minus(self):
        u'''用例2,minus,此用例执行失败,4-3!=2'''
        print u'中文xxxxxxxxxxxxxxxxxxxx'
        self.assertEqual(self.a - self.b, 2)


class ExampleCase2(unittest.TestCase):
    u'''此class包含一个用例:plus - ERROR'''
    def setUp(self):
        self.a, self.b = 4, 3

    def test_plus(self):
        u'''用例3,plus,此用例执行出错,因为c未定义'''
        self.assertEqual(self.a * self.b, c)


class ExampleCase3(unittest.TestCase):
    u'''此class包含一个用例:divide - ok'''
    def setUp(self):
        self.a, self.b = 4, 2

    def test_devide(self):
        u'''用例4,divide,此用例执行成功'''
        self.assertEqual(self.a / self.b, 2)


if __name__ == '__main__':
    from HTMLTestRunner import HTMLTestRunner
    report_title = u'Example用例执行报告'
    desc = u'用于展示修改样式后的HTMLTestRunner'
    report_file = 'D:\\ExampleReport.html'

    testsuite = unittest.TestSuite()
    testsuite.addTest(ExampleCase1("test_add"))
    testsuite.addTest(ExampleCase1("test_minus"))
    testsuite.addTest(ExampleCase2("test_plus"))
    testsuite.addTest(ExampleCase3("test_devide"))

    with open(report_file, 'wb') as report:
        runner = HTMLTestRunner(stream=report, title=report_title, description=desc)
        runner.run(testsuite)

运行后产生报告如下图:
ExampleReport

主要的修改有:

  1. 报告内容改成中文
  2. 简单调整下样式
  3. 原来报错信息太长会出现横向滚动条,改为折行显示

同时使用时注意几个细节:

  • 在每个class和testcase method第一行添加段落注释,会被当做对这个用例的描述,在报告中输出,这样报告看起来更清晰漂亮一些。
  • 所有的控制台输出信息都会被捕捉并输出到报告中,所以适当直接用print输出一些辅助信息,能够让报告可读性更强
  • 注释以及print的信息含中文,则要用unicode形式输出,即引号前加u的形式
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!