it-swarm.com.de

Kann das UI-Automatisierungsinstrument von der Befehlszeile aus ausgeführt werden?

Gibt es eine Möglichkeit, das UIAutomation-Instrument über das Terminal zu öffnen?

Wird es möglich sein, eine AppleScript zu schreiben, um das UIAutomation-Tool von Apple zu öffnen und die zu testende Anwendung zu laden?

Können Sie mir bitte sagen, gibt es einen Weg durch das Scripting oder über die Befehlszeile, wir können UIAutomation öffnen und die zu testende App auswählen sowie das Testskript auswählen?

53
Vijay
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>

für 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>

für 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>

Es gibt jedoch ein paar wichtige Dinge zu beachten:

  1. der Parameter -w ist nicht erforderlich, es sei denn, Sie möchten die Skripts auf Ihrem Gerät ausführen. Wenn Sie Ihre Skripts auf dem Simulator ausführen möchten, lassen Sie diesen Parameter einfach aus dem Befehl aus.
  2. full_path_to_application ist der Pfad zu Ihrer .app-Datei, die von Ihrem Simulator erstellt wird. Für mich war der Weg 

    / Benutzer/fwasim/Bibliothek/Anwendungssupport/iPhone Simulator/5.0/Anwendungen/AA6BA2E1-D505-4864-BECC-29ADEE28194D/name_of_application.app

    dieser Pfad kann für andere Personen unterschiedlich sein, je nachdem, welche iOS-Version Sie auf Ihrem Simulator ausführen. Denken Sie auch daran, diesen Pfad in doppelte Anführungszeichen zu setzen.

  3. Path_to_script.js sollte der vollständige Pfad sein, in dem Ihr in JavaScript geschriebenes Automatisierungsskript gespeichert wird. Denken Sie auch daran, diesen Pfad in doppelte Anführungszeichen zu setzen.

  4. Der letzte Ergebnispfad ist der Pfad, in dem Sie die Ausgabeergebnisse speichern möchten. Denken Sie auch daran, diesen Pfad in doppelte Anführungszeichen zu setzen.

Dies waren die Punkte, die ich vermisst hatte und so einige der oben genannten Fehler erhalten haben.

54

Starten Sie UIAutomation über die Befehlszeile Sie können es jetzt tun, beginnend mit XCode 4.2 für iOS5 Beta 4 Von der Befehlszeile aus können Sie Instrumente ausführen, die auf die Automatisierungsvorlage zeigen, und als Umgebungsvariable das Testskript angeben, das Sie ausführen möchten und Zielpfad für Ergebnisse:

instruments -w -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate -e UIASCRIPT 

Oben ist von dieser Quell-URL: http://dev-ios.blogspot.com/2011/07/start-uiautomation-via-command-line.html

Weitere Einzelheiten zur Befehlszeile von Apple finden Sie unter: http://developer.Apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/instruments.1.html

Plus-Beitrag von Stacktrace-Benutzer in der Befehlszeile mit iPhone iOS UIAutomation Können Instrumente mit der Befehlszeile verwendet werden?

Hoffe, diese Hilfe- haben einen guten Tag :)

22
user887803

Aktualisiert und getestet für 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/'

Inspiriert von anderen, die Befehlszeilen-Wrapper geschrieben haben, die seit einiger Zeit nicht mehr aktualisiert wurden und daher nicht funktionierten (und schwer zu verstehen schien, als ich versucht wurde, sie wiederzubeleben), schrieb ich ein bash-Shell-Skript Glaube wird transparenter, leichter und somit einfacher zu warten.

Sie finden das Projekt unter github und einem Begleiter Blogbeitrag .

8
idStar

Anstelle des langen Befehls instruments habe ich einen Wrapper geschrieben, der einfacher zu verwenden ist: https://github.com/enriquez/uiauto

Um es zu benutzen, musst du nur Folgendes tun:

  1. Erstellen Sie Ihr Projekt in Xcode für den Simulator (Geräteunterstützung folgt).
  2. cd zu dem Ort, an dem sich das Projekt .xcodeproj oder .xcworkspace befindet.
  3. Führen Sie uiauto exec path/to/your/script.js aus.
6

Mit jeder neuen Version von Xcode scheint sich der Vorlagenpfad geändert zu haben. Eine der besten Möglichkeiten, den Pfad der Vorlage herauszufinden, ist der instruments -s-Befehl, der alle verfügbaren Vorlagen auflistet.

4
harish

Ich interessierte mich auch sehr für dieses Thema. Was ich tatsächlich gefunden habe, ist diese reference , die zeigt, dass Instrumente vom Terminal mit vordefinierter Vorlage, dem Ort, an dem die Ergebnisse gespeichert werden sollen, und dem Zielgerät, auf dem sie ausgeführt werden sollen, und anderen Parametern gestartet werden können. Sie können auch einfach das Terminal instruments eingeben, um die Parameterliste abzurufen. 

Ich war mit dem Ausführen von UI Automation auf dem iPhone nicht erfolgreich. Ich habe keinen Simulator oder eine Mac-App probiert, da ich mich hauptsächlich für das Gerät interessiere. Ich habe eine Frage hier zu SO gepostet, aber aufgrund der fehlenden Antwort denke ich, dass nicht viele Leute Instrumente auf diese Weise verwenden. 

Aber es gibt Hoffnung, es zum Laufen zu bringen, denn es gibt einen t seinen kurzen Thread im Apple Developer Forum (Sie müssen sich anmelden), der darauf hindeutet, dass dies möglich ist. Ich werde das später versuchen, wenn ich Erfolg habe, werde ich hier eine Lösung posten. Wenn Sie es schaffen werden, machen Sie sich bitte hierher, da ich (und wahrscheinlich auch andere) daran interessiert sein werden.

3
yoosiba

es gibt ein Werkzeug zum Aufzeichnen/Wiedergeben von UI-Ereignissen in der Shell-Umgebung und zum Schreiben von Skripten mit Ruby.

interaktive iPhone-Anwendungsentwicklung http://github.com/wookay/libcat

2
WooKyoung Noh

Der richtige Weg, dies auf einem iOS-Simulator zu tun, lautet wie folgt:

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
barryjones

Geben Sie diesen Befehl in terminal instruments -s ein. Sie erhalten den Vorlagepfad nach dem Typ:

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