zoukankan      html  css  js  c++  java
  • python中HTMLTestRunner生成测试报告,与unittest模块结合

    前提:

             先下载HTMLTestRunner.py

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

             参考:http://www.cnblogs.com/testyao/p/5658200.html

        参考:http://www.cnblogs.com/miniren/p/5301081.html#commentform

             参考:https://www.cnblogs.com/findyou/p/6925733.html

             里面提供写好的适合python3使用的:http://pan.baidu.com/s/1dEZQ0pz

             把这个文件放在你安装python的lib目录下(我的在C:Program FilesPython36Lib)

    一:测试套件执行少量用例,仅生成测试报告

             #############run01.py############# 

    import unittest
    import HTMLTestRunner
    import os
    
    #从文件test_case/company/test_getLog加载GetLog类
    from test_case.company.test_getLog import GetLog
    
    #使用测试套件,添加GetLog类里面的test_getLogN方法
    suite = unittest.TestSuite()  #初始化一个测试套件Suite实例
    suite.addTest(GetLog('test_getLogN'))  #GetLog是类名,test_getLogN是测试函数
    
    #输出到特定目录下
    # 父目录:os.path.dirname(所在目录:os.path.dirname(绝对路径:os.path.realpath(__file__)))
    cur_path = os.path.dirname(os.path.realpath(__file__))  #当前文件所在目录
    report_path = os.path.join(cur_path, 'report')  #拼接成一个新目录
    report_abspath = os.path.join(report_path, "result.html")
    
    #以字节的方式写入目录下的report.html文件里
    st = open(report_abspath, 'wb')
    HTMLTestRunner.HTMLTestRunner(stream=st, title= '公司端接口自动化测试报告').run(suite)

    二、执行多条用例,仅生成测试报告

             #############run02.py#############

    #coding=utf-8
    import unittest
    import os
    import HTMLTestRunner
    
    #仅生成测试报告不发送邮件
    # 父目录:os.path.dirname(所在目录:os.path.dirname(绝对路径:os.path.realpath(__file__)))
    cur_path = os.path.dirname(os.path.realpath(__file__))  #当前文件存在的路径
    case_path = os.path.join(cur_path, 'test_case')         #测试case目录
    report_path = os.path.join(cur_path, 'report')          #测试报告存放目录
    
    
    def all_case():
        '''第一步:加载所有的测试用例'''
    
        # 批量加载iscover方法里面有三个参数:
        #-case_dir:这个是待执行用例的目录。
        #-pattern:这个是匹配脚本名称的规则,test*.py意思是匹配test开头的所有脚本。
        #-top_level_dir:这个是顶层目录的名称,一般默认等于None就行了。
    # discover加载到的用例是一个list集合,需要重新写入到一个list对象testcase里,这样就可以用unittest里面的TextTestRunner这里类的run方法去执行。 discover = unittest.defaultTestLoader.discover(case_path, pattern="test_ljj*.py", top_level_dir=None) # print(discover) return discover def run_case(all_case): '''第二步:执行所有的用例, 并把结果写入HTML测试报告''' # 测试报告文件路径 report_abspath = os.path.join(report_path, "result.html") fp = open(report_abspath, "wb") # 批量执行测试用例三个参数: --stream:测试报告写入文件的存储区域 --title:测试报告的主题 --description:测试报告的描述 runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'日本公司端自动化测试报告,测试结果如下:', description=u'用例执行情况:') # 调用add_case函数返回值 runner.run(all_case) fp.close() if __name__ == "__main__": all_case = all_case() # 1加载用例 run_case(all_case) # 2执行用例
  • 相关阅读:
    UVA 1001 Say Cheese
    UVa 821 Page Hopping
    UVA 1569 Multiple
    UVA 1395 Slim Span
    UVA 12219 Common Subexpression Elimination
    UVA 246 10-20-30
    Mysql基本操作
    浅析关键字static
    面试回答技巧
    五个程序员好习惯
  • 原文地址:https://www.cnblogs.com/lijinglj/p/9732167.html
Copyright © 2011-2022 走看看