zoukankan      html  css  js  c++  java
  • 接口自动化测试 python+request+excel(三)

    自动生成接口自动化报告

    前期要导入HTMLTestrunner模块,如果没有HTMLTestrunner模块的话,可以百度搜索下载下来。

    #!/usr/bin/env python3
    # -*-coding:utf-8-*-
    # __author__: hunter
    
    import time
    from HTMLTestRunner import HTMLTestRunner      # 导入HTMLTestRunner模块
    import unittest
    
    # 把discover加载测试用例的过程封装到一个函数中
    def allCase():
        case_dir = 'D:/hunter_/interfaceTest/interface/case'  # 定义测试用例所在路径
        suite = unittest.TestSuite()  # 定义一个测试套件
        discover = unittest.defaultTestLoader.discover(case_dir,
                                                       pattern='test_*.py',
                                                       top_level_dir=None)
    
        """
        1、case_dir即测试用例所在目录
        2、patten='test_*.py' : 表示用例文件名的匹配规则,“*”表示任意多个字符,这里表示匹配所有以test_开头的文件
        3、top_level_dir=None : 测试模块的顶层目录。如果没顶层目录(也就是说测试用例不是放在多级目录中),默认为None
        """
    
        # discover方法筛选出来的用例,循环添加到测试套件中
        for test_suit in discover:
            for test_case in test_suit:
                suite.addTests(test_case)
        print(suite)
        '''直接加在discover'''
        return suite
    
    if __name__ == '__main__':
    
        allsuit = allCase()    # 实例化
        now = time.strftime("%Y-%m-%d %H-%M-%S")    # 显示当时的时间
        filename = 'D:/hunter_/interfaceTest/interface/report/' + now + '_result.html'    # 测试报告的路径+当时的时间+测试报告名称
        fp = open(filename, 'wb')                                    # 打开文件,创建测试报告HTML文件,此时还是空文件;w是写入模式,b代表的是二进制模式(pickle储存模式默认是二进制模式)
        runner = HTMLTestRunner(stream=fp,
                                title='接口测试报告',
                                description='Implementation Example with')            # 初始化一个HTMLTestRunner实力对象,用来生成报告
    runner.run(allsuit)      # 运行测试套件

    生成的测试报告

     代码能力优秀的话,可以对HTMLTestrunner模块进行优化修改,可以让测试报告更加完美;同时也可以增加错误截图的功能

  • 相关阅读:
    mysql单机多实例配置
    mysql中FILE权限
    手把手教你用 Git(转)
    单例模式
    Java中的枚举Enum
    常见排序算法的亲手实现(代码与注释)
    Java中的位运算
    重载
    Java中的boxing和unboxing(转)
    Java的transient关键字(转)
  • 原文地址:https://www.cnblogs.com/hemingwei/p/11571008.html
Copyright © 2011-2022 走看看