Ответ 1
Часть первая: -. Кажется, вы запустили appium-сервер, используя node server.js
- Вы можете проверить сервер, перейдя в localhost:4723/wd/hub/status
в своем браузере, это вернет несколько деталей сервера. Вы уже это сделали.
Вывод команды будет выглядеть так, чтобы подтвердить, что сервер запущен:
info: Welcome to Appium v0.8.1 (REV ***********************************)
info: Appium REST http interface listener started on 0.0.0.0:4723
info - socket.io started
Часть вторая:. Затем вы используете Selenium RC для Python, Java или С# или независимо от вашего выбора языка. Я использовал С# и могу предоставить примеры, которые должны быть похожими для ваших тестов.
Чтобы добавить селен в класс С#: using OpenQA.Selenium.Remote;
Вы передаете все свои данные объекту желаемых возможностей селена.
Существуют некоторые пользовательские требуемые возможности, такие как:
- 'app-package' - это имя пакета приложения, такое как com.myapp.main,
- "приложение-активность", которое называется основной деятельностью приложений, которая также запустит приложение. Это часто действие всплеска или основной активности,
- "wait-activity" - это активность, которую Appium будет проверять после запуска, это будет активность приложения, но для меня это другое, если для некоторых тестов запускается новая активность, чем называется,
- 'version', взяв версию для Android,
-
'ID устройства', чтобы подключить ваше устройство или AVD к команде и приложению, которые будут иметь локальный путь к apk, который вы хотите установить. Это будет подписано и установлено при запуске, если уже существующее приложение уже существует, оно пропустит это для вас.
DesiredCapabilities caps = new DesiredCapabilities(); caps.SetCapability("app-package", "com.myapp.test"); caps.SetCapability("browserName", ""); caps.SetCapability("device", "Android"); caps.SetCapability("app-activity", "com.myapp.SplashActivity"); caps.SetCapability("takesScreenshot", true); caps.SetCapability("version", "4.1.2"); caps.SetCapability("device ID", "uniquedeviceid"); caps.SetCapability("app", @"C:\path to\app\on\pc\app.apk");
Следуя созданным возможностям создайте объект удаленного веб-драйвера, передав URL-адрес концентратора, который вы использовали, например http://localhost:4723/wd/hub
и созданные вами желаемые возможности.
RemoteWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:4723/wd/hub/"), caps);
В этой строке используется ip или хост сервера Appium для начала прослушивания запросов. Для меня этот шаг подписывает установку и запускает приложение на подключенном устройстве, надеюсь, это будет работать для вас одинаково. Вот где тесты селена, которые вы пишете, подключены к серверу Appium.
Теперь, используя созданный объект driver
, вы можете получить доступ к командам selenium rc, из которых Appium реализовала множество альтернатив для тестирования Android.
Во время каждого из них окно консоли сервера Appium должно показать вам, есть ли какие-либо проблемы.
Выход будет закодирован цветом, чтобы помочь в выявлении сбоев из этого окна, но вы можете обрабатывать их по-своему и выводить в файл, если это необходимо.
Обновление для нескольких устройств Я не уверен в использовании нескольких устройств, я бы рассмотрел селеновую сетку мои предыдущие попытки добавить 2 устройства к одной машине, и у теста возникла путаница, когда adb не смог различить независимо идентификатора устройства, дополняющего конфигурацию и команды. Команда Appium улучшает добавление функций сетки на сервер, я рекомендую вам взглянуть на Appium Grid (ссылка обновлена)
Я прошу прощения за отсутствие у меня опыта работы с сеткой, чтобы помочь вам в дальнейшем.
С уважением, Брайан