接口自动化测试 unittest+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模块进行优化修改,可以让测试报告更加完美;同时也可以增加错误截图的功能

猜你喜欢

转载自www.cnblogs.com/hemingwei/p/11571008.html