автоматизировать приложения для мобильных устройств путем прямой связи с телефоном через REST API - PullRequest
0 голосов
/ 11 октября 2019

В настоящее время я работаю над проектом, который в значительной степени опирается на appium / selenium для автоматизации. Эти структуры отлично подходят для начала, но надежность не совсем там и требует много дополнительного оборудования / программного обеспечения для запуска автоматизации. Такие как macOS, xcode, adb, appium, selenium, usb соединение или подключение через WIFI (что мы в настоящее время должны использовать). В этом стеке автоматизации очень много зависимостей, и было бы неплохо иметь более чистое, надежное и масштабируемое решение.

Вот мне и интересно. Кто-нибудь знает способ запуска автоматизации для iOS и Android через REST API, используя сервер, который живет непосредственно на устройстве, позволяя нам общаться с устройством, как curl -POST <device_ip>:<port>/session/{sessionId}/openApp.

Подумайте о WebDriverAgent, который создал Facebook, но вместо того, чтобы быть собранным с помощью xcodebuild, этот агент просто живет на устройстве. По сути, когда вы создаете этот фреймворк, он запускает тот сервер, который я описываю, но он зависит от xcode, и я в конечном итоге хотел бы убрать xcode с нуля. Я знаю, что сегодня очень много проблем, с которыми сталкиваются люди, имеющие проблемы как с сервером WDA, так и с xcode. Специально с новыми версиями, и как WebDriverAgent теперь архивируется на Facebook.

Разве мы не можем просто создать приложение, которое может работать как WebDriverServer, работающее все время, и будет просто использовать ту же логику, что и сегодня ... через стартовую сессию, найти элементы по Id, нажать на них идвигаться дальше. Это также избавило бы от необходимости запускать Appium на вашем компьютере и полагаться на него, чтобы проксировать ваши команды на этом сервере WDA с iOS.

Я знаю, что android - намного более простая картина, и в настоящее время я немногобольше сосредоточены на том, как решить эту проблему с iOS на данный момент.

Буду признателен за понимание этого вопроса / вопроса, и если у кого-нибудь есть предложения по Appium, автоматизации iOS, Android и другим вопросам, которые можно высказать, пришлите мне свой отзыв.

Мы запускаем нашу автоматизацию с использованием реальных устройств!

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Если вы открыты для использования коммерческих инструментов, вы можете рассмотреть возможность использования xcuitrunner . Он устанавливает последнюю версию приложения Appium WebDriverAgent на ваше устройство iOS, запускает его (и поддерживает его работу) и возвращает вам конечную точку HTTP, которую вы можете использовать для непосредственного взаимодействия с WebDriverAgent.

Это помогает удалитьпара зависимостей (таких как Xcode), которыми может быть сложно управлять. Вам все равно понадобится сертификат подписи кода и профиль обеспечения от Apple.

0 голосов
/ 20 октября 2019

Я использую Appium / Selenium для доступа из Rest API. На мой взгляд, это проще, чем создавать свой собственный.

Одним из решений было то, что мы сейчас работаем над проектом, использующим Flutter - которому все еще нужен ваш Xcode для входа в зависимости. Вам также необходимо убедиться, что libimobiledevice и ideviceinstaller установлены, и, наконец, изменить Flutter. И мы называем реальное устройство от остальных API. В настоящее время мы масштабируем и отслеживаем производительность.

Еще одна жизнеспособная альтернатива, о которой я могу подумать, сделать это через XCTest будет проще, чем Appium. Просто укажите конечную точку в вашем приложении и создайте оболочку в XCTest. Вызовите остальные API и запустите тест в XCTest. В долгосрочной перспективе он более стабилен и быстрее.

Но для большинства проектов я все еще использую Appium для тестирования iOS, пока мы оцениваем это решение.

...