• (六)自动生成测试报告


    原文链接:https://www.cnblogs.com/eastonliu/p/9147075.html

    用例执行完成后,执行结果默认是输出在屏幕上,其实我们可以把结果输出到一个文件中,形成测试报告。

    unittest自带的测试报告是文本形式的,如下代码:

    import unittest
    
    if __name__ == "__main__":
        # 测试用例目录
        test_dir = r"D:GitTest_Framework	est_case"
        # 加载测试用例
        discover = unittest.defaultTestLoader.discover(test_dir, 'test*.py')
        # 测试报告路径
        report_path = r"D:GitTest_Framework
    eport
    eport.text"
        with open(report_path,"a") as report:
            runner = unittest.TextTestRunner(stream=report,verbosity=2)
            runner.run(discover)
    

    生成的txt测试报告如下:

    这种TXT文件测试报告不能直观地展示用例执行情况,引入第三方模块HTMLTestRunner,可以展示一份优美的html格式的测试报告。

    下面我们就来介绍下HTMLTestRunner模块

    HTMLTestRunner模块不能通过pip安装,必须先下载下来下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

     

    直接右键另存为就行了,下载完成后放到python安装目录下的../Python36Lib

    因为HTMLTestRunner模块是基于Python2开发的,目前停止更新了,在Python3上运行会报错。为了使其支持Python3环境,需要对其中的部分内容进行修改:

    第94行,将import StringIO修改成import io

    第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer= io.StringIO()

    第631行,将print >> sys.stderr, ‘ Time Elapsed: %s‘ %(self.stopTime-self.startTime)修改成print(sys.stderr, ‘ TimeElapsed: %s‘ % (self.stopTime-self.startTime))

    第642行,将if not rmap.has_key(cls):修改成if notcls in rmap:

    第766行,将uo = o.decode(‘latin-1‘)修改成uo = e

    第775行,将ue = e.decode(‘latin-1‘)修改成ue = e

    修改完成后保存。

    现在我们就可以生成一份优美的测试报告了

    代码:

    import unittest
    from HTMLTestRunner import HTMLTestRunner
    
    if __name__ == "__main__":
        # 测试用例目录
        test_dir = r"D:GitTest_Framework	est_case"
        # 加载测试用例
        discover = unittest.defaultTestLoader.discover(test_dir, 'test*.py')
        # 测试报告路径
        report_path = r"D:GitTest_Framework
    eport
    eport.html"
        with open(report_path,"wb") as report:
            runner = HTMLTestRunner(stream = report,
                                    title = "测试报告",
                                    description = "系统登录测试用例执行")
            runner.run(discover)
    

      

  • 相关阅读:
    sql中的group by 和 having 用法解析
    关于js的this上下文环境绑定
    windows Service循环任务.服务启动后无法停止重启的解决办法
    js 数组对象的操作方法
    SVN Client API的.net 接口 SharpSvn介紹 Checkout操作实例
    JQuery实现表格的相同单元格合并的三种方法
    SharpSVN出错信息:Can't determine the user's config path,从此证明了百度是个垃圾
    显示js对象所有属性和方法的函数
    软件开发实践的24条军规
    C#中的泛型
  • 原文地址:https://www.cnblogs.com/lvchengda/p/13176826.html
Copyright © 2020-2023  润新知