Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Как подключить Android or iOS device по wi-fi к Grid hub (non localhost)


(Funker) #1

Собственно вопрос в теме.
Как подключить ‘живой’ девайс, не эмулятор, как во многих видео роликах, к Selenium Grid по wi-fi?

Уточнение. девайс подключен только к зарядке и не имее соединениея с ПК по USB порту.

раньше (1 год назад ) было нужно только установить на девайс driver и там в настройках выставить ip hub и port, а как сейчас?


(Dmitry Cheremushkin) #2

###Для Android

Устройство должно появиться в выдаче adb devices, для этого:


(для всех устройств)

  1. Подключить устройство по USB, включить USB Debugging и подключиться к сети Wi-Fi
  2. Узнать IP-адрес устройства в Wi-Fi сети
    (можно командой adb shell ip -f inet addr show wlan0)
  3. Выполнить adb tcpip 5555
  4. Выполнить adb connect <IP_адрес_из_п.2>

(все вышеперечисленные команды выполняются в командной строке компьютера, к которому подключен телефон)


— (для rooted-устройств), для настройки не требуется подключение по USB

  1. На устройстве выполнить команды (например, используя Android Terminal Emulator):
    su
    setprop service.adb.tcp.port 5555
    stop adbd
    start adbd

  2. Узнать IP-адрес устройства в Wi-Fi сети
    (можно также командой на устройстве ip -f inet addr show wlan0)

  3. На машине, которая выполняет роль Grid-ноды выполнить adb connect <IP_адрес_из_п.2>


###Для iOS

Устройство должно появиться в iTunes / xCode, для этого:

  1. Подключить устройство по USB
  2. Открыть iTunes
  3. На вкладке ‘Summary’ для устройства включить опцию ‘Sync with this [device] over Wi-Fi’ и сохранить настройки.

###Что дальше?

Всё это нужно, чтобы WiFi-устройство обнаруживалось нативными инструментами. Когда это происходит, с ним можно работать точно также как с USB-устройством. Т.е., как правило, запускается Grid-нода (Appium / Selendroid / ios-driver), которая добавляется в Selenium Grid.


P.S. Вопрос почему-то в категории webdriver, а не мобильные — поэтому не сразу его заметил и ответил.


(Funker) #3

Спасибо буду пробовать!


(Funker) #4

не могу разобраться почему slendroid не появляется в Grid.
Делаю вот такую последовательность.

все по инструкции от сюда Selendroid manual

  1. подключаю девайс, как описано выше

     C:\Dev\soft\ConEmu>adb devices
    

    List of devices attached
    GIGABYTE device
    172.31.29.51:5555 device

  2. запускаю сервер selendroid-standalone командой

    java -jar selendroid-standalone-0.10.0-with-dependencies.jar -app selendroid-test-app-0.10.0.apk -port 5555

  3. запускаю Grid HUB

    java -Dfile.encoding=UTF-8 -cp “selendroid-grid-plugin-0.10.0.jar;selenium-server-standalone-2.42.2.jar” org.openqa.grid.selenium.GridLauncher -capabilityMatcher io.selendroid.grid.SelendroidCapabilityMatcher -role hub -host 127.0.0.1 -port 4444

  4. перехожу в http://localhost:4444/grid/console а здесь пусто,
    в документации написано, что нужно подключить grid node командой

    curl -H “Content-Type: application/json” -X POST --data @selendroid-nodes-config.json http://localhost:4444/grid/register
    как это зделать если у меня Windows (нет в windows curl)? Есть ли способ подключить Node средствами Windows?

еще одно, selendroid-standalone как-то странно видит мой девайс, вот что выдает http://localhost:5555/wd/hub/status

{
	"status": 0,
	"value": {
		"supportedApps": [{
			"appId": "io.selendroid.testapp:0.10.0",
			"mainActivity": "io.selendroid.testapp.HomeScreenActivity",
			"basePackage": "io.selendroid.testapp"
		},
		{
			"appId": "io.selendroid.androiddriver:0.10.0",
			"mainActivity": "io.selendroid.androiddriver.WebViewActivity",
			"basePackage": "io.selendroid.androiddriver"
		}],
		"os": {
			"arch": "amd64",
			"name": "Windows 7",
			"version": "6.1"
		},
		"build": {
			"browserName": "selendroid",
			"version": "0.10.0"
		},
		"supportedDevices": [{
			"screenSize": "800x480",
			"platformVersion": "15",
			"model": "Rio R1",
			"emulator": false
		},
		{
			"screenSize": "800x480",
			"platformVersion": "15",
			"model": "Rio R1",
			"emulator": false
		}]
	}
}

(Funker) #5

пробовал запустить на подключенном девайсе пример из коробки https://github.com/selendroid/demoproject-selendroid
выдало вот такую ошибку
https://gist.github.com/dstoianov/31cb2a7a9f9a842b539d


(Dmitry Cheremushkin) #6

– установите cURL отсюда.


(rmerkushin) #7

Можно еще поставить GIT для Windows, в котором по мимо curl есть еще куча всяких линуксовых утилит, которые могут быть полезны :slight_smile:


(Funker) #8

можно подвести итог.
Я подключил наконец-то selendroid к живому девайсу (local and as grid) но то как он не стабильно работает и постоянно падает, у меня простонет сил с этим бороться, хотя, может у меня был такой девайс не от samsung, а был китайский GYGABYTE который постоянно то появлялся то пропадал. Я забросил это дело.

iOS device так и не подключил к ios-driver т.к. он не поддержывает real devices.

Appium driver мне показался сильно сложным, я с ним толком не разбирался.
вернусь к мобильным девайчас через пол года, может что-то изменится в лучшую сторону :)))


(Funker) #9

возвращаясь обранто к Appium driver есть цикл статей про Appium, может кому-то будет интересно то почитать можно здесь: http://sauceio.com/index.php/category/appium-2/