前言
一直想学习自动化测试,但是都没行动,业余时间学习零零碎碎并记录20210418。
5、使用unittest框架
unittest框架简介
Unittest中类方法和实例方法
测试用例、测试套件和测试加载器的运用以及加载测试用例的四种方法
使用unittest重构测试用例
为项目生产测试报告
主要步骤就是
- 写测试案例初始化就是加载器加载:loader=unittest.TestLoader()
- 定义测试套件:suite=unittest.TestSuite()
- 通过测试套件加载测试用例(四种方法)
- 运行测试案例:runner=unittest.TextTestRunner()、runner.run(suite)
加载测试用例的四种方法
-
0、实例化
- loader=unittest.TestLoader() #初始化,也叫加载器加载
- suite=unittest.TestSuite() #定义测试套件
-
1、方法一:通过测试用例类进行加载
- suite.addTest(loader.loadTestsFromTestCase(MyTestCase1))
- suite.addTest(loader.loadTestsFromTestCase(MyTestCase2))
-
2、方法二:通过测试用例模版进行加载
- suite.addTest(loader.loadTestsFromModule(MyTestCase1))
- suite.addTest(loader.loadTestsFromModule(MyTestCase2))
-
3、方法三:通过路径加载(推荐)
path = os.path.dirname(os.path.abspath(__file__))
suite.addTest(loader.discover(path))
-
4、方法四:逐条加载测试用例(不推荐,太low)
- case1 = MyTest1("test1")
- case2 = MyTest2("test2")
- suite.addTest(case1)
- suite.addTest(case2)
实操
- 代码
# 测试案例/测试套件/测试加载器运用
import unittest
class MyTestCase1(unittest.TestCase):
def test01(self):
print("test01")
def test02(self):
print("test02")
class MyTestCase2(unittest.TestCase):
def test03(self):
print("test03")
def test04(self):
print("test04")
# # 第一种:通过测试用例类进行加载
# if __name__ == '__main__':
#
# # 先初始化就是加载器
# loader = unittest.TestLoader()
# # 测试套件
# suite = unittest.TestSuite()
# # 加载案例 测试用例方法加载测试用例loadTestsFromTestCase
# suite.addTest(loader.loadTestsFromTestCase(MyTestCase1))
# suite.addTest(loader.loadTestsFromTestCase(MyTestCase2))
#
# # 运行
# runner = unittest.TextTestRunner()
# runner.run(suite)
# # 第二种:通过测试用例模版进行加载
# if __name__ == '__main__':
# #通过测试用例模板去加载
# # 先初始化就是加载器
# loader = unittest.TestLoader()
# # 测试套件
# suite = unittest.TestSuite()
# # 加载案例 通过测试用例模板加载loadTestsFromModule
# suite.addTest(loader.loadTestsFromModule(MyTestCase1))
# suite.addTest(loader.loadTestsFromModule(MyTestCase2))
#
# # 运行
# runner = unittest.TextTestRunner()
# runner.run(suite)
# 第三种通过路径加载(最推荐)
if __name__ == '__main__':
# 通过路径加载
# 先初始化就是加载器
loader = unittest.TestLoader()
# 测试套件
suite = unittest.TestSuite()
# 通过路径加载
import os
path = os.path.dirname(os.path.abspath(__file__))
suite.addTest(loader.discover(path))
# 运行
runner = unittest.TextTestRunner()
runner.run(suite)
# # 第四种逐条加载还是算了 太low
- 运行结果