Тестовая платформа Pytest Appium

#python-appium

Вопрос:

Я очень новичок в разработке автоматизации и в настоящее время начинаю писать платформу для тестирования приложений Android на основе appium pytest. Мне удалось запустить тесты на подключенном устройстве с помощью этого кода, который, похоже, использует unittest:

 class demo(unittest.TestCase):
    reportDirectory = 'reports'
    reportFormat = 'xml'
    dc = {}
    driver = None
    # testName = 'test_setup_tmotg_demo'
    
    def setUp(self):
        self.dc['reportDirectory'] = self.reportDirectory
        self.dc['reportFormat'] = self.reportFormat
        # self.dc['testName'] = self.testName
        self.dc['udid'] = 'RF8MA2GW1ZF'
        self.dc['appPackage'] = 'com.tg17.ud.internal'
        self.dc['appActivity'] = 'com.tg17.ud.ui.splash.SplashActivity'
        self.dc['platformName'] = 'android'
        self.dc['noReset'] = 'true'
        self.driver = webdriver.Remote('http://localhost:4723/wd/hub',self.dc)

    # def test_function1():
    #   code

    # def test_function2():
    #   code

    # def test_function3():
    #   code
    # etc...

    def tearDown(self):
        self.driver.quit()
        
if __name__ == '__main__':
    unittest.main()
 

Как вы можете видеть, все функции в настоящее время находятся в «демонстрационном» классе.
Цель состоит в том, чтобы создать несколько тестовых случаев для каждой части приложения (например, регистрация, главный экран, премиум-подписка и т.д.). В конечном итоге это может привести к сотням тестовых случаев.
Мне кажется, что просто продолжать перечислять их всех в этом же классе было бы беспорядочно и дало бы мне очень ограниченный контроль. Однако я не нашел другого способа организовать свои тесты, сохраняя устройство подключенным через appium.

Вопрос в том, как правильно организовать проект, чтобы я мог:

  1. Настройте устройство с помощью appium server
  2. Запустите все наборы тестов в последовательном порядке (регистрация, главный экран, подписка и т. Д.).
  3. Выполните очистку… экспорт результатов, отключение устройства и т.д.

Я надеюсь, что достаточно ясно описал этот вопрос. Буду рад уточнить, если понадобится.