Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Jenkins + Maven + Appium + Real device IOS

maven
ios
appium
infrastructure
jenkins
mobile
java
Теги: #<Tag:0x00007fedbab36028> #<Tag:0x00007fedbab35e70> #<Tag:0x00007fedbab35d30> #<Tag:0x00007fedbab35bc8> #<Tag:0x00007fedbab35a88> #<Tag:0x00007fedbab35920> #<Tag:0x00007fedbab35790>

(Тест Тестов) #1

Добрый вечер всем!
У меня возник следующий вопрос: Моей конечной целью является запуск тестов в связке appium + IOS real device с помощью дженкинса. Дженкинс развернут на локальной машине, используются следующие настройки запуска тестов:

        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "IOS");
        capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "11.2.1");
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Iphone");
        capabilities.setCapability(MobileCapabilityType.UDID, 74859bb7c435945dafd8691be871ef96905030322);
        capabilities.setCapability(MobileCapabilityType.APP, "/Users/TEST/Library/Developer/Xcode/DerivedData/WebDriverAgent-cvqckynzuuktkogfpkkkgyompmoj/Build/Products/Debug-iphoneos/IntegrationApp.app");

При запуске из Intellij Idea + Maven (mvn test) тест успешно запускается на устройстве, но при запуске из дженкинса отображается следующая ошибка:

/START APPIUM SERVER/....
 [Appium] Creating new XCUITestDriver (v2.68.0) session
[Appium] Capabilities:
[Appium]   app: /Users/TEST/Library/Developer/Xcode/DerivedData/WebDriverAgent-cvqckynzuuktkogfpkkkgyompmoj/Build/Products/Debug-iphoneos/IntegrationApp.app
[Appium]   platformVersion: 11.2.1
[Appium]   platformName: IOS
[Appium]   udid: 74859bb7c435945dafd8691be871ef96905030322
[Appium]   deviceName: Iphone
[BaseDriver] Expected W3C "capabilities" to be a JSON Object but was provided with: []
[BaseDriver] Falling back to MJSONWP desired capabilities
[BaseDriver] Session created with session id: b1797f6a-47ec-4dfc-8099-abc01aeaf878
[XCUITest] The 'idevice_id' program is not installed. If you are running a real device test it is necessary. Install with 'brew install libimobiledevice --HEAD'
[XCUITest] Error: Unknown device or simulator UDID: '74859bb7c435945dafd8691be871ef96905030322'

brew install libimobiledevice --HEAD конечно же установлен. Каким образом так происходит?


(Vitali) #2

Здравствуйте , расширение .app, обычно для симуляторов, для девайсов нужно использоваться приложение с расширением .ipa, при этом UDID девайса должен быть добавлен в профижион профайл приложения, так же нужно еще переподписать Web Driver Agent, странно что у вас app запустилось на устройстве с идеи


(Тест Тестов) #3

Да, везде написано, что для запуска на реальном устройстве приложение должно быть расширения ipa, но тем не менее работает и так) И проблема не в этом - я получаю такое-же сообщение об ошибке при запуске из идеи в случае если девайс не подключен


(Тест Тестов) #4

То есть дженкинс просто не видит девайс


(Vitali) #5

у вас же не jenkins отвечает за запуск, это всего лишь web ui, запускает он так же как и идея, используя maven. Признаю честно у меня не удалось и не удавалось .app ставить на телефон, если начать гуглить то все приводит к тому что используйте .ipa и следующий набор инструментов обязателен
$ npm install -g appium
$ npm install -g appium-doctor
$ brew install libimobiledevice --HEAD
$ brew install ideviceinstaller
$ npm install -g ios-deploy
$ gem install xcpretty
$ cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/
$ brew install carthage
$ npm i -g webpack
$ ./Scripts/bootstrap.sh -d

Убедившись , что все это у вас есть попробуйте еще раз, естественно на той машине , где jenkins пытается запустить ваши тесты


(Тест Тестов) #6

Решил вопрос путем прописания глобальной переменной в дженкинсе