思考:当存在多个脚本,每个脚本中有多条测试用例时,我们该如何批量执行呢? 分析:首先创建2个测试用例脚本(.py文件),每个脚本有2条测试用例,然后批量执行全部测试用例
#Test_01.py
# coding=utf-8'''Created on 2019-1-3@author: 丹姐Project:测试项目1'''import unittestclass 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 unittestclass 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种方法,还有其他方法,比如测试用例参数化方法,待后续说明.....