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

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

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

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

9 ответов

Решение
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. Наконец, путь к выходным результатам - это путь, по которому вы хотите сохранить выходные результаты. Также не забудьте поставить этот путь в двойных кавычках.

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

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

instruments -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 Можно ли использовать инструменты с помощью командной строки?

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

Обновлен и протестирован для 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 и сопутствующее сообщение в блоге.

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

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

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

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

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

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

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

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

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

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

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

instruments -t <template path> <Application file path> -e UIASCRIPT <script.js> UIARESULTPATH <result_path>
Другие вопросы по тегам