[Python + unittest 인터페이스 자동 테스트 전투 (4 개)]-테스트 케이스로드, 테스트 보고서 생성

하나, unittest 자동 테스트 구조

2. 테스트 케이스로드 및 테스트 보고서 생성

1. 관련 모듈 가져 오기 : unittest 등

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

 2. 대상 테스트 케이스로드 : 테스트 케이스 폴더 케이스, 테스트 케이스 파일의 이름은 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는 실패, 통과를, E는 오류를 의미합니다.

 

추천

출처blog.csdn.net/kk_gods/article/details/109222902