Перейти к содержимому

Практикум по тест-дизайну 2.0
онлайн, начало 20 cентября
Python для начинающих
онлайн, начало 25 сентября
Первый Онлайн ИНститут Тестировщиков
онлайн, начало 23 сентября
Тестирование REST API
онлайн, начало 23 сентября
Фотография

Selenium Grid + Appium + Python


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 4

#1 Alexander_Tkachev

Alexander_Tkachev

    Новый участник

  • Members
  • Pip
  • 6 сообщений

Отправлено 20 Август 2019 - 06:57

Добрый день. Пытаюсь настроить параллельные автотесты приложения на нескольких андроид устройствах. 

Для каждого из устройств создал json файл вида:

{ "capabilities":
[
{
"deviceName": "LGM700dcbaf29c",
"version":"8.1.0",
"maxInstances": 10,
"platform":"ANDROID"
}
],
"configuration":
{
"cleanUpCycle":2000,
"timeout":30000,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:4723/wd/hub",
"host": "127.0.0.1",
"port": 4723,
"maxSession": 10,
"register": true,
"registerCycle": 5000,
"hubPort": 4444,
"hubHost": "127.0.0.1"
}
}

Запускаю хаб, и отдельные инстансы Аппиума командой вида appium -a 127.0.0.1 -p 4723 -bp 2253 -U LGM700dcbaf29c --nodeconfig /home/test/LGM700dcbaf29c.json

 

В Environment.py прописал следующее:

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

def before_feature(context, feature):
caps = DesiredCapabilities.ANDROID.copy()
caps["app"] = WD + "/apps/" + AppName
caps["appPackage"] = "ru.messenger.android"
caps["appActivity"] = "ru.messenger.android.activity.main.StartActivity"
caps["newCommandTimeout"] = "1000"
context.driver = webdriver.Remote(
command_executor="http://127.0.0.1:4444/wd/hub",
desired_capabilities=caps
)

Но тут появляется проблема. DesiredCapabilities.ANDROID отдает только {'browserName': 'android', 'version': '', 'platform': 'ANDROID'}. Мне же для подключения еще нужен deviceName. В интернете советуют добавлять deviceName в caps вручную, так же как добавляются и остальные параметры, но тогда как запустить тест на двух устройствах, если вручную прописан deviceName одного из них. Я думал что можно каким-то образом вытаскивать deviceName из json файла который я указываю при запуске инстанса, но DesiredCapabilities.ANDROID.copy() видимо мне в этом не поможет. Есть какой-то вариант? 


  • 0

#2 Alexander_Tkachev

Alexander_Tkachev

    Новый участник

  • Members
  • Pip
  • 6 сообщений

Отправлено 20 Август 2019 - 12:39

Вопрос или такой сложный или такой тупой, что никто на него не ответит? )


  • 0

#3 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 374 сообщений
  • Город:Н.Новгород

Отправлено 20 Август 2019 - 13:59

Возможно, никто на форуме еще не пробовал так делать, или они не успели сюда заглянуть.

 

Но если просто рассуждать, то грид нужен именно для того, чтобы у вас были в распоряжении несколько устройств с одинаковыми возможностями, и хаб сам решит, какое из них выделить.

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


  • 0

#4 checo

checo

    Опытный участник

  • Members
  • PipPipPipPip
  • 374 сообщений
  • Город:Н.Новгород

Отправлено 20 Август 2019 - 14:15

А вообще, по стандарту расширения капабилити должны передаваться с префиксом.

Попробуйте, может быть, распознает в виде "appium:deviceName".


  • 0

#5 Alexander_Tkachev

Alexander_Tkachev

    Новый участник

  • Members
  • Pip
  • 6 сообщений

Отправлено 30 Август 2019 - 09:05

Решил так. При вызове экземпляра appium прописываю еще --device-name где указываю имя устройства

а потом. если где-то нужно имя устройства, дергаю его с помощью context.driver.capabilities["deviceName"] из хаба Selenium

 

К знатокам SeleniumGrid  такой вопрос: почему при подключении нескольких устройств. все тесты все равно прогоняются на одном из них, а не параллельно или поочередно?


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных

Яндекс.Метрика
Реклама на портале