Appium - что лучше всего в случае перезапуска приложения - LaunchApp или StartActivity - PullRequest
0 голосов
/ 01 июня 2018

Я использую Appium для тестирования устройства Android в C #.

Каждый раз, когда я запускаю тестовый пример, мне нужно переходить на главный экран и затем начинать использование.Это может быть достигнуто двумя способами, используя: LaunchApp и функцию StartActivity.

Насколько я считаю, LaunchApp снова запускает приложение, то есть убивает работающее приложение и запускает приложение с самого начала.Однако я в конечном итоге в деятельности запуска.Это освободит пространство памяти, поэтому приложение не будет испытывать стресс или проблемы с памятью.StartActivity не убивает приложение, а переключается на определенную активность.Что будет таким же, как в реальном случае.

Верно ли мое утверждение выше?или какая разница между обоими?

1 Ответ

0 голосов
/ 03 июня 2018

В целом вы все правильно поняли, но здесь стоит добавить больше контекста.

Как это работает:

launchApp() по умолчанию выполняет следующие действия:

  • проверяет, установлено ли приложение
  • выполняет быстрый сброс (включая остановку приложения, очистку кэша и т. Д.)
  • запускает приложение с операция запуска
  • проверяет пакет + активность на соответствие тем, которые вы установили в возможностях (appWaitPackage, appWaitActivity)

startActivity выполняет следующее:

  • запускает команду через оболочку adb для запуска указанной активности
  • проверяет пакет + активность на соответствие той, которую вы задали в качестве аргумента

Примеры из реальной жизни , например, приложение с LoginActivity -> NavigationActivity -> WhateverActivity flow:

  1. Вы вошли в приложение

a) launchApp()очистит приложение и переместит вас назад в LoginActivity

b) startActivity(NavigationActivity) просто запустит NavigationActivity, поэтому вам не нужно будет входитьв приложение.

Вы не вошли в приложение

a) launchApp() будет таким же, как в Q1

b) startActivity (NavigationActivity) завершится с Incorrect package and activity какПоток приложений не позволяет этого.

Я использую startActivity перед каждым тестом, чтобы добраться до start point, что помогает ускорить набор тестов, избегая повторной установки и повторной регистрации приложения.

...