Appium+Python之批量执行测试用例

思考:当存在多个脚本,每个脚本中有多条测试用例时,我们该如何批量执行呢?



分析:首先创建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类方法找出所有.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种方法,还有其他方法,比如测试用例参数化方法,待后续说明.....