Appium и Selenium Grid

Appium и Selenium Grid

Ответ на вопрос “Почему Appium?” заслуживает отдельного поста, а пока расскажу как подключить несколько девайсов/эмуляторов на одном хосте в selenium grid.

Appium-server, выступающий в роли selenium ноды, умеет работать только с одним девайсом одновременно. Поэтому тебе нужно будет запустить по отдельному инстансу на каждое устройство. Для каждого инстанса нужен свой конфиг примерно следующего содержания:

{
  "capabilities":
      [
        {
      "browserName": "Android",
      "version": "5.0",
      "maxInstances": 1,
          "platform": "ANDROID"
        }
      ],
  "configuration":
  {
    "cleanUpCycle":2000,
    "timeout":300000,
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
    "url": "http://appium-node-host:5555/wd/hub",
    "host": "appium-node-host",
    "port": 5555,
    "maxSession": 1,
    "register": true,
    "registerCycle": 5000,
    "hubHost": "selenium-grid-host",
    "hubPort": 4444
  }
}

Обрати внимание на следующие моменты:

  • должны быть заданы все три параметра url, host, port. Если не задать хотя бы один из них, appium-сервер инициализирует все три параметрами по умолчанию
  • port должен быть уникальным для каждого инстанса

Теперь запускаем appium:

appium --nodeconfig /path/to/config.json -p PORT --udid DEVICE_ID

Здесь тоже есть особенности:

  • путь к конфигу должен быть абсолютным - appium не понимает, в какой директории его вызывают
  • PORT - номер порта, указанный в конфиге
  • DEVICE_ID - id девайса :) те, что показываются по adb devices, например

После этого в консоли твоего грида (http://selenium-grid-host/grid/console) появятся свежеподключенные устройства. Впереди будет еще не один пост про автоматизацию мобильных приложений, так что stay tuned =)

comments powered by Disqus