思考:当存在多个脚本,每个脚本中有多条测试用例时,我们该如何批量执行呢?
分析:首先创建2个测试用例脚本(.py文件),每个脚本有2条测试用例,然后批量执行全部测试用例
#Test_01.py
# coding=utf-8
'''
Created on 2019-1-3
@author: 丹姐
Project:测试项目1
'''
import unittest class Test01(unittest.TestCase):
@classmethod
def setUpClass(cls,driver):
cls.driver=driver
def setUp(self):
pass
def test_one(self):
print(u'测试用例test_one')
def test_two(self):
print(u'测试用例test_two')
def tearDown(self):
pass
@classmethod
def tearDownClass(cls):
cls.driver.quit()
#Test_02.py
# coding=utf-8
'''
Created on 2019-1-3
@author: 丹姐
Project:测试项目2
'''
import unittest class Test02(unittest.TestCase):
@classmethod
def setUpClass(cls,driver):
cls.driver=driver
def setUp(self):
pass
def test_first(self):
print(u'测试用例test_first')
def test_second(self):
print(u'测试用例test_second')
def tearDown(self):
pass
@classmethod
def tearDownClass(cls):
cls.driver.quit()
方法一:利用TestSuite类addTest方法依次加载
if __name__ == "__main__":
#实例化测试套件
suite = unittest.TestSuite()
#用例加载到测试套件中
suite.addTest(Test01("test_one"))
suite.addTest(Test01("test_two"))
suite.addTest(Test02("test_first"))
suite.addTest(Test02("test_second"))
方法二:利用defaultTestLoader类discover方法找出所有.py文件下测试用例,然后加载到suite
注意:discover方法测试用例执行顺序是根据ASCII码来执行的,0~9,A~Z,a~z
if __name__ == "__main__":
test_dir = r'E://testing_code/code/SmartSiteTestScript/src/test_case' # 指明要自动查找的py文件所在文件夹路径
# 产生测试套件
def createSuite():
#实例化测试套件
testunit = unittest.TestSuite()
# 使用discover找出用例文件夹test_case的所有用例
discover = unittest.defaultTestLoader.discover(test_dir, # 查找的文件夹路径
pattern='Test_*.py') # 要测试的模块名,以Test开头的.py文件) for suite in discover: # 使用for循环出suite,再循环出case
for case in suite:
testunit.addTests(case)
print(testunit)
return testunit
#实例化测试套件方法
suite = createSuite()
除了以上2种方法,还有其他方法,比如测试用例参数化方法,待后续说明.....