2015-06-30 5 views
2

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

Я считаю, что я могу создать один файл сценария и использовать #import ключевое слово, что-то вроде этого:

#import "AddStaticContentMissingName.js" 
#import "AddStaticContent.js" 

Он работает и оба скрипта работают, но второй один начинается там, где первая кончается одно и то, что беспокоит меня , Я могу установить первый, чтобы закончить, когда второй нужен, но мне это не нравится. Я только один, чтобы сценарий делать то, что должно проверить, а затем закончить. Так можно ли перед каждым испытанием перезапустить приложение или что-то в этом роде? Я хочу, чтобы автоматизация пользовательского интерфейса была максимально автоматизирована, и что вы используете? Или вы используете другой инструмент, а затем UI Automation?

Бонус вопрос: Я искал решение, как запустить это из командной строки и/или с Xcode Server. Я предполагаю, что Xcode Server является проблемой, но для командной строки есть решение. Проблема с решением, которое я обнаружил, заключается в том, что я не переносился? Я не могу каким-либо образом добавить некоторый скрипт в мой репозиторий, и если кто-то попытается его использовать, возникнут проблемы с путями. Пример команды я нашел:

instruments \ 
-w your_ios_udid \ 
-t "/Applications/Xcode.app/Contents/Applications/Instruments.app/Contents/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate" \ 
name_of_your_app \ 
-e UIASCRIPT absolute_path_to_the_test_file 
+0

Вы должны разделить вопрос о бонусе на свой вопрос. – Ian

ответ

1

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

Например, если ваше приложение не использует жест «встряхивания» для чего-либо, вы можете использовать его для запуска перезапуск в вашем приложении (не закрывая его, просто вернув его в известное состояние). Затем в верхней части каждого сценария UIAutomation вы можете просто call the method for the shake gesture.

В testing framework we wrote мы создали свой собственный RPC channel, чтобы мы могли предоставить функциональность без использования интерфейса (например, сброс приложения) на сценарии автоматизации. Неважно, какая система вы используете, чтобы это произошло, если вы можете надежно получить приложение в известное состояние.

+0

Спасибо за anwer. Я искал решение, которое нужно было бы просто добавить несколько строк кода в файлы javascript, и все. Думаю, это невозможно. Спасибо за ваши «хаки», но я думаю, что для моей цели было бы лучше, если каждый сценарий вернется на главную страницу после того, как он сделает то, что должен проверить. –

+1

Это хорошая стратегия, но если какой-либо из сценариев терпит неудачу, все последующие действия, которые вы создали, также потерпят неудачу. – Ian

+0

Да, поэтому я думал о приложении «перепродажи». Возможно, ваше решение с каким-то жестом может быть правильным. –

1

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

#!/bin/bash instruments -w <UDID> -t <template> <app> -e UIASCRIPT <script1> instruments -w <UDID> -t <template> <app> -e UIASCRIPT <script2>

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

+0

Нет, это не проблема, что вы публикуете это немного позже. Похоже, он может работать.Я только несколько дней назад узнал, что UI Automation устарела, и с Xcode 7 Apple представляет новый способ тестирования интерфейса. –

+0

@LiborZapletal не устарел. Он по-прежнему работает на Xcode 7, но они также добавили новый тест пользовательского интерфейса, который использует XCTest (ObjC и/или Swift). –

+0

По словам Apple, UIAutomation будет устаревшим через год после того, как XCTest окажется вне бета-версии. – Ian