思考:當存在多個腳本,每個腳本中有多條測試用例時,我們該如何批量執行呢?
分析:首先創建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種方法,還有其他方法,比如測試用例參數化方法,待后續說明.....