I.测试套件(Test Suite):是测试用例、测试套件或两者的集合,用于组装一组要运行的测试(多个测试用例集合在一起)
(1)创建一个测试套件
import unittest suite = unittest.TestSuite()
(2)将测试用例,加载到测试套件中
-
通过模块或测试用例类加载
import testcases # 测试用例的模块 import unittest suite = unittest.TestSuite() # 创建测试套件 loader = unittest.TestLoader() # 用来加载TestCase到TestSuite中的 suite.addTest(loader.loadTestsFromModule(testcases)# 模块加载 suite.addTest(loader.loadTestsFromTestCase(testcases.类名)) # 用例类加载
-
添加单条测试用例:suite.addTest(类名("用例方法名"))
-
-
import unittest suite = unittest.TestSuite() loader = unittest.TestLoader() suite.addTest(loader.discover(r"用例文件所在的目录的绝对路径"))
II.Test Runner:用于协调测试的执行并(通过图形界面、文本界面、返回特殊值)向用户提供结果
: .:用例通过 E:表示代码出错了
runner = unittest.TextTestRunner() # 测试运行程序--->用来执行测试用例的 runner.run(suite)
III. 生成测试报告
(1)text类型报告
with open(“test_report.txt","w") as f: runner = unittest.TextTestRunner(f) runner.run(suite)
(2)html类型报告
from HTMLTestRunnerNew import HTMLTestRunner runner = HTMLTestRunner(stream=open("test_report.html", "wb"), # 打开一个报告文件,将句柄传给stream tester="xxx", # 报告种显示的测试人员 description="测试报告描述, # 报告种显示描述信息 title="测试报告标题") # 报告的标题 # 方法2 with open('test_report.html','wb') as file: runner = HTMLTestRunner(stream=file, tester = 'xxxx', # 报告种显示的测试人员 title='测试报告标题', # 报告的标题 description='测试报告描述' ) # 报告种显示描述信息 runner.run(suite)
完整代码为:
import time import os import unittest from com.contants import CASE_DIR # 测试用例模块路径 from com.contants import REPORT_DIR # 测试报告路径 from com.myconf import conf # 读取配置文件(测试报告配置信息) from library.HTMLTestRunnerNew import HTMLTestRunner # 生成测试报告 from com.sendemail import send_email # 1.创建测试套件 suite = unittest.TestSuite() # 2. 加载TestCase到TestSuite中 # 创建对象加载 loader = unittest.TestLoader() # # (1)通过模块加载 # suite.addTest(loader.loadTestsFromModule(test_case)) # # (2)通过测试用例类加载 # suite.addTest(loader.loadTestsFromTestCae(test_case.类名)) # # # (3)添加单条测试用例,不需要loader对象方法 # # 注意:通过用例类去创建测试用例对象时,需传入用例的方法名(字符串类型) # suite.addTest(类名("用例方法名")) # (4)指定测试用例的所在的目录路径,进行加载() suite.addTest(loader.discover(CASE_DIR)) # 测试运行程序--->用来执行测试用例的 # 方法1 # runner = unittest.TextTestRunner() # 方法2:将HTMLTestRunner文件放在scripts report_name = time.strftime('%Y-%m-%d %H_%M') + conf.get('report','reportname') report_path = os.path.join(REPORT_DIR,report_name) with open(report_path,'wb') as file: runner = HTMLTestRunner(stream=file, # 文件名 tester = conf.get('report','tester'), # 报告种显示的测试人员 title= time.strftime('%Y-%m-%d %H_%M_%S') + conf.get('report','title'), # 报告的标题 description=conf.get('report','description') ) # 报告种显示描述信息 runner.run(suite) # 发送测试报告 send_email(report_path,report_name)