Можно ли запустить инструмент автоматизации пользовательского интерфейса из командной строки? - PullRequest
54 голосов
/ 16 ноября 2010

Есть ли способ открыть инструмент UIAutomation через терминал?

Можно ли написать AppleScript, чтобы открыть инструмент Apple UIAutomation и загрузить приложение для тестирования?

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

Ответы [ 9 ]

55 голосов
/ 23 июня 2012
instruments -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/\
PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \
<full_path_to_application> -e UIASCRIPT <path_to_script.js> \
-e UIARESULTSPATH <output_results_path>

для xcode> = 4.5

instruments -t
/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/\
AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate \
<full_path_to_application> -e UIASCRIPT <path_to_script.js> \
-e UIARESULTSPATH <output_results_path>

для xcode> = 6.1

instruments -w <device ID> -t \
/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/\
AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate \
<full_path_to_application> -e UIASCRIPT <path_to_script.js> \
-e UIARESULTSPATH <output_results_path>

Здесь следует отметить несколько важных вещей:

  1. параметр -w не требуется, если вы не хотите запускать скрипты на своем устройстве. Если вы хотите запустить свои скрипты на симуляторе, просто пропустите этот параметр в команде.
  2. full_path_to_application - это путь к вашему .app-файлу, который создается вашим симулятором. Для меня путь был

    / Пользователи / fwasim / Библиотека / Поддержка приложений / iPhone Simulator / 5.0 / Приложения / AA6BA2E1-D505-4864-BECC-29ADEE28194D / name_of_application.app

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

  3. path_to_script.js должен быть ПОЛНЫМ ПУТЬМ, куда сохранен ваш скрипт автоматизации, написанный на javascript. Также не забудьте поставить этот путь в двойных кавычках.

  4. Наконец, путь к выходным результатам - это путь, по которому вы хотите сохранить выходные результаты. Также не забудьте поставить этот путь в двойных кавычках.

Это были те моменты, по которым я упускал, и поэтому получал некоторые из ошибок, упомянутых выше.

22 голосов
/ 10 августа 2011

Запуск UIAutomation через командную строку Вы можете сделать это сейчас, начиная с XCode 4.2 для iOS5 бета 4. Из командной строки вы можете запускать инструменты, указывающие на шаблон автоматизации, и указывать в качестве переменных среды тестовый скрипт, который вы хотите выполнить, и путь назначения.для результатов:

инструменты -w -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate -e UIASCRIPT

Выше приведен URL этого источника: http://dev -ios.blogspot.com / 2011/07 / initial-uiautomation-via-command-line.html

Подробнее об этом см.командная строка от Apple по адресу: http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/instruments.1.html

Плюс сообщение от пользователя Stacktrace о командной строке, запущенной с iphone iOS UIAutomation Можно ли использовать инструменты с помощью командной строки?

Надеюсьэто помогает - хорошего дня:)

8 голосов
/ 21 сентября 2014

Обновлен и протестирован для Xcode 6.0.1 :

instruments -w 'iPhone 5s' \
    -t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \
    '/Users/sohail/Library/Developer/CoreSimulator/Devices/7232A640-A9D2-4626-A2AD-37AFFF706718/data/Containers/Bundle/Application/E71B915E-051D-4BEF-9083-34416D02EC91/RoadRunnerRadar.app' \
    -e UIASCRIPT '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestRunner.js' \
    -e UIARESULTSPATH '/Users/sohail/Developer/clients/acme/roadrunnerradar/ACMERoadRunnerRadarAutomationTests/TestResults/'

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

Вы можете найти проект на github и сопутствующем сообщении в блоге .

6 голосов
/ 17 августа 2013

Вместо длинной команды instruments я написал оболочку, которую проще использовать: https://github.com/enriquez/uiauto

Чтобы использовать его, вам просто нужно сделать следующее:

  1. Создайте свой проект в Xcode для симулятора (поддержка устройства скоро будет).
  2. укажите, где находится .xcodeproj или .xcworkspace вашего проекта.
  3. Выполнить uiauto exec path/to/your/script.js.
4 голосов
/ 11 января 2013

С каждой новой версией Xcode путь к шаблону меняется.Один из лучших способов узнать путь к шаблону - это команда instruments -s, которая выдаст список всех доступных шаблонов.

3 голосов
/ 21 января 2011

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

Мне не удалось запустить UI Automation на iPhone таким образом.Я не пробовал симулятор или приложение для Mac, так как меня больше всего интересует устройство.Я разместил вопрос здесь на SO , но из-за отсутствия какого-либо ответа, я думаю, что не многие люди используют инструменты таким образом.

Но есть надежда запустить его, так как есть короткая ветка t на форуме разработчиков Apple (вам необходимо войти в систему), которая предполагает, что это можно сделать.Я постараюсь это позже, если мне это удастся, я опубликую решение здесь.Если вам удастся сделать так, чтобы ходатайства выполнялись, отправьте свой путь сюда, так как я (и, вероятно, другие) будет заинтересован.

2 голосов
/ 24 марта 2011

есть инструмент для записи / воспроизведения событий пользовательского интерфейса в среде оболочки и может писать сценарии с помощью ruby.

интерактивная разработка приложений для iPhone http://github.com/wookay/libcat

0 голосов
/ 16 декабря 2015

Правильный способ сделать это на симуляторе iOS:

instruments -w 'iPhone 5s (9.1)' \
-t '/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.xrplugin/Contents/Resources/Automation.tracetemplate' \
'justTheNameOfYourAppDontAddExtension' \
-e UIASCRIPT '/Users/barry/Dropbox/Public/login.js' \
-e UIARESULTSPATH '/Users/barry/Dropbox/Public/
0 голосов
/ 08 марта 2013

Введите эту команду в терминальных инструментах -s, после шаблона вы получите путь к шаблону:

instruments -t <template path> <Application file path> -e UIASCRIPT <script.js> UIARESULTPATH <result_path>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...