【python+unittest 接口自动化测试实战 (四) 】-- 加载测试用例,生成测试报告

一、unittest自动化测试结构

二、加载测试用例,生成测试报告

1、导入相关模块:unittest等

import unittest
import time
import HTMLTestRunner
import os
import sys
from config import readconfig
import datetime

 2、加载目标测试用例:测试用例文件夹case,测试用例文件名称以Test开头

# 当前脚本所在文件真实路径
cur_path = os.path.dirname(os.path.realpath(__file__))


def add_case(case_name="case", rule="Test*.py"):
    """
    加载所有的测试用例
    """
    case_path = os.path.join(cur_path, case_name)  # 用例文件夹
    # 定义discover方法的参数
    # discover()方法会自动根据测试目录匹配查找测试用例文件(Test*.py),并将查找到的测试用例组装到测试套件中
    discover = unittest.defaultTestLoader.discover(case_path,  # 要测试的模块名或测试用例目录
                                                   pattern=rule,  # 测试用例文件名的匹配规则
                                                   top_level_dir=None)  # 测试模块的顶层目录,如果没有,默认None
    print('discover:', discover)
    return discover

 3、运行测试用例,然后将测试报告写入目标报告文件夹下



def run_case(all_case, report_name="report"):
    """
    执行所有的用例, 并把结果写入HTML测试报告
    :param all_case:
    :param report_name:
    :return:
    """
    report_path = os.path.join(cur_path, report_name)  # 用例文件夹
    # 如果不存在report文件夹,就自动创建一个
    if not os.path.exists(report_path):
        os.mkdir(report_path)
    report_abspath = os.path.join(report_path, now+"result.html")
    fp = open(report_abspath, "wb")
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,  # 指定测试报告文件
                                           title=u'Lis Interface AutoTest Report',  # 测试报告标题
                                           description=u'Test Case Execution:')  # 测试报告副标题
    # 执行测试
    runner.run(all_case)
    fp.close()

 4、执行

def main():
    print('测试执行时间:{}'.format(datetime.datetime.now()))
    all_case = add_case()  # 加载用例
    # 生成测试报告的路径
    run_case(all_case)  # 执行用例
if __name__ == "__main__":
    main()

三、执行结果

F 代表fail , . 代表 pass ,E 代表 error

 

猜你喜欢

转载自blog.csdn.net/kk_gods/article/details/109222902