测试套件(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(类名("用例方法名"))
指定测试用例的所在的目录路径
进行加载()
discover(start_dir,pattern = "test*.py”,top_level_dir = None):start_dir:待测试的模块名或测试用例目录;pattern= "test*.py”:测试用例文件名的匹配原则;top_level_dir = None:测试模块的顶层目录,默认None。
import unittest
suite = unittest.TestSuite()
loader = unittest.TestLoader()
suite.addTest(loader.discover(r"用例文件所在的目录的绝对路径"))
Test Runner:用于协调测试的执行并(通过图形界面、文本界面、返回特殊值)向用户提供结果。
(1)测试结果
.:用例通过
E:表示代码出错了
F:表示不通过
(2)使用启动器,执行测试套件。
runner = unittest.TextTestRunner() # 测试运行程序--->用来执行测试用例的
runner.run(suite)
(1)text类型报告:
with open(“test_report.txt","w") as f:
runner = unittest.TextTestRunner(f)
runner.run(suite)3
(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)
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末领取】
生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!
生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!
只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!