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