编程语言
首页 > 编程语言> > python接口自动化测试 - unittest框架suite、runner详细使用

python接口自动化测试 - unittest框架suite、runner详细使用

作者:互联网

test suite

test runner

test suite、test runner基础使用

单元测试类

 1 # 创建单元测试类,继承unittest.TestCase
 2 class testCase(unittest.TestCase):
 3 
 4     # 测试case
 5     def test_01(self):
 6         print("test01")
 7 
 8     def test_03(self):
 9         print("test03")
10 
11     def test_04(self):
12         print("test04")
13 
14     def test_05(self):
15         print("test05")

主函数

 1 if __name__ == '__main__':
 2     # 实例化测试套件
 3     suite = unittest.TestSuite()
 4     # 实例化第二个测试套件
 5     suite1 = unittest.TestSuite()
 6     # 添加测试用例 - 方式一
 7     suite.addTest(testCase('test_03'))
 8     suite.addTest(testCase('test_01'))
 9     suite1.addTest(testCase('test_03'))
10     suite1.addTest(testCase('test_01'))
11     # 添加测试用例 - 方式二
12     testcase = (testCase('test_05'), testCase('test_04'))
13     suite.addTests(testcase)
14     # 测试套件添加测试套件
15     suite.addTest(suite1)
16     # 实例化TextTestRunner类
17     runner = unittest.TextTestRunner()
18     # 运行测试套件
19     runner.run(suite)

运行结果

 1 test03
 2 test01
 3 test05
 4 test04
 5 test03
 6 test01
 7 ......
 8 ----------------------------------------------------------------------
 9 Ran 6 tests in 0.000s
10 
11 OK

包含知识点

addTests(tests)

单元测试类名(测试用例名)

测试用例批量执行

单元测试类文件

前三个文件是包含了单元测试类的文件,第四个文件是负责运行所有单元测试类,不包含测试用例

列举某个单元测试类文件代码

 1 # 创建单元测试类,继承unittest.TestCase
 2 class testCase02(unittest.TestCase):
 3 
 4     # 测试case
 5     def test_07(self):
 6         print("testCase02 test07")
 7 
 8     def test_06(self):
 9         print("testCase02 test06")
10 
11     def test_11(self):
12         print("testCase02 test11")

test_run.py 代码

批量运行测试用例方式一:

 1 import unittest
 2 from learn.unittestLearning import test_case02
 3 from learn.unittestLearning.test_case03 import testCase03
 4 
 5 if __name__ == '__main__':
 6     # 通过模块
 7     testcase02 = unittest.TestLoader().loadTestsFromModule(test_case02)
 8     # 通过单元测试类
 9     testcase03 = unittest.TestLoader().loadTestsFromTestCase(testCase03)
10     # 通过模块字符串
11     testcase04 = unittest.TestLoader().loadTestsFromName('learn.unittestLearning.test_case04')
12     # 测试用例集
13     tests = [testcase02, testcase03, testcase04]
14     # 创建测试套件
15     suite = unittest.TestSuite(tests)
16     # 运行测试套件
17     unittest.TextTestRunner(verbosity=2).run(suite)

包含知识点

loadTestsFromTestCase(testCaseClass)

loadTestsFromModule(module, pattern=None)

loadTestsFromName(name, module=None)

verbosity

批量运行测试用例方式二(推荐!!):

1 import unittest
2 
3 if __name__ == '__main__':
4     # 需要运行的单元测试文件目录
5     test_path = './'
6     # 实例化defaultTestLoader
7     discover = unittest.defaultTestLoader.discover(start_dir=test_path, pattern="test_case*.py")
8     # 运行测试用例集
9     unittest.TextTestRunner().run(discover)

优点:是不是简洁。。是不是很快??只需三行代码!!

包含知识点

start_dir

pattern

discover()

批量执行测试用例的结果

 1 testCase02 test06
 2 testCase02 test07
 3 testCase02 test11
 4 testCase03 test05
 5 testCase03 test08
 6 testCase03 test12
 7 testCase04 test02
 8 testCase04 test04
 9 testCase04 test13
10 .........
11 ----------------------------------------------------------------------
12 Ran 9 tests in 0.000s
13 
14 OK

 转载至:https://cloud.tencent.com/developer/article/1640663?from=15425

 

标签:套件,python,unittest,单元测试,runner,测试用例,测试,test
来源: https://www.cnblogs.com/suger43894/p/15798167.html