t.me/atinfo_chat Telegram группа по автоматизации тестирования

Jenkins + Maven + Appium + Real device IOS

Теги: #<Tag:0x00007f748709bdb8> #<Tag:0x00007f748709bcf0> #<Tag:0x00007f748709bc28> #<Tag:0x00007f748709b340> #<Tag:0x00007f748709b278> #<Tag:0x00007f748709b1b0> #<Tag:0x00007f748709b0c0>

Добрый вечер всем!
У меня возник следующий вопрос: Моей конечной целью является запуск тестов в связке 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 конечно же установлен. Каким образом так происходит?

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

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

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

у вас же не 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 пытается запустить ваши тесты

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