Может ли инструмент автоматизации пользовательского интерфейса запускаться из командной строки?

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

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

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

Ответ 1

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>

Есть несколько важных замечаний:

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

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

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

  • Путь path_to_script.js должен быть FULL PATH, где сохраняется ваша автоматизация script, написанная в javascript. Также не забудьте поставить этот путь в двойные кавычки.

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

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

Ответ 2

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

tools -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/starting-uiautomation-via-command-line.html

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

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

Надеюсь, что это поможет - хорошо провести время:)

Ответ 3

Обновлено и протестировано для 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 shell script, который, я считаю, будет более прозрачным, легче и, следовательно, легче поддерживать.

Вы можете найти проект github и блог

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

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

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

Ответ 7

есть инструмент для записи/воспроизведения UI-событий со средой оболочки и может написать script с ruby.

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

Ответ 8

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

instruments -t <template path> <Application file path> -e UIASCRIPT <script.js> UIARESULTPATH <result_path>

Ответ 9

Правильный способ сделать это на 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/