• Appium+python HTML测试报告(1)


    测试任务执行完成后,我们需要一份通俗易懂的测试报告来展示自动化测试的结果。

    HTMLTestRunner是Python的单元测试框架unittest的一个扩展,它生成易于使用的HTML测试报告。与TextTestRunner一样提供run()方法来执行测试套件或测试用例,返回特定的值表示执行结果。

    一、HTMLTestRunner配置

    1、HTMLTestRunner.py的下载

    下载地址:

    python2:http://tungwaiyip.info/software/HTMLTestRunner.html

    右键另存为下载HTMLTestRunner.py,将文件放到...pythonLib目录下

    python3:https://pan.baidu.com/s/1k4m6JFelcWH_QiHGlvjsUQ

    HTMLTestRunner是基于Python2开发的,要支持python3,需要修改HTMLTestRunner.py文件中的部分内容。上面下载链接为已修改文件,将文件放到...pythonLib目录下。

    在python交互模式下导入HTMLTestRunner模块,系统没有报错则说明添加成功。

    >>> import HTMLTestRunner
    >>>

    2、生成HTML测试报告

    # coding:utf-8
    import unittest, time
    from appium import webdriver
    from HTMLTestRunner import HTMLTestRunner
    if __name__ == '__main__':
        suite = unittest.TestSuite()
        suite.addTest(TestCalculator('test_add'))
        # 执行测试,使用HTMLTestRunner生成测试报告
        fp = open('./result.html', 'wb')
        runner = HTMLTestRunner(stream=fp, title='计算器测试报告', description='测试用例执行情况')
        runner.run(suite)
        fp.close()
    • open(),自动创建并打开以二进制模式打开指定目录下的result.html文件
    • 初始化一个HTMLTestRunner对象runner,stream制定测试报告文件,title定义测试报告的标题,description定义测试报告的副标题
    • HTMLTestRunner的run()方法运行测试套件
    • fp.close()关闭测试报告文件

    测试执行完成后,打开目录中生成的result.html文件查看测试报告

    二、优化测试报告

    1、测试报告文件命名优化

    上面将测试报告文件命名为result.html,每次生成报告时会将之前的报告覆盖掉。我们在测试运行前将原来的测试报告修改名字以保存,但是这样将花费时间且可能会忘记。我们将测试报告文件名加上当前时间,使生成的报告更不会重叠,更清晰。

    Python中的time模块提供了丰富的关于时间的操作

    >>> import time
    >>> time.time()
    1543739732.9201088
    >>> time.ctime()
    'Sun Dec  2 16:35:39 2018'
    >>> time.localtime()
    time.struct_time(tm_year=2018, tm_mon=12, tm_mday=2, tm_hour=16, tm_min=35, tm_sec=48, tm_wday=6, tm_yday=336, tm_isdst=0)
    >>> time.strftime("%Y-%m-%d %H:%M:%S")
    '2018-12-02 16:36:57'
    >>>

    代码修改如下:

    if __name__ == '__main__':
        suite = unittest.TestSuite()
        suite.addTest(TestCalculator('test_add'))
        suite.addTest(TestCalculator('test_sub'))
        # 执行测试,使用HTMLTestRunner生成测试报告
        now_time = time.strftime("%Y%m%d_%H-%M-%S")
        file_path = open('./'+now_time+'_TestResult.html', 'wb')
        runner = HTMLTestRunner(
            stream=file_path,  # 文件
            title='计算器测试报告',   # 标题
            description='测试用例执行情况',   # 副标题
        )
        runner.run(suite)
        file_path.close()

     运行后生成的报告文件为:

     2、测试报告优化

    python的注释有两种,一种是comment,一种是doc string。comment是普通的注释,doc string用于函数、类和方法的描述。

    在类和方法下方添加""" """或''' '''来添加doc string类型的注释。HTMLTestRunner可以读取doc string类型的注释

    class TestCalculator(unittest.TestCase):
        """计算器应用case"""
    
        def test_add(self):
            ''' 加运算 '''

    运算后报告如下:

  • 相关阅读:
    单件模式 Singleton---Design Pattern 5
    Web请求中同步与异步的区别
    zepto和jquery的区别,zepto的不同使用8条小结
    zepto判断左右滑动
    移动web终端交互优化
    Flexbox
    设计移动web
    viewport
    Pixel移动开发像素知识
    获取元素的left值
  • 原文地址:https://www.cnblogs.com/fancy0158/p/10054632.html
Copyright © 2020-2023  润新知