2016-04-21 9 views
0

Derzeit verwende ich UIAutomator, um Android-UI-Tests durchzuführen. Im Grunde schreibe ich Java-Code, kompiliere ihn, installiere das jar und laufe.kann das AndroidViewClient-Skript auf dem Gerät oder von der App (nicht vom Terminal) ausgeführt werden

Angenommen, die UI-Test-App (UI-Vorgänge aus XML-Datei lesen) heißt AppTester.jar, mit der die entwickelte App namens myApp.apk getestet wird. Dann muss ich laufen:

Daher werden alle Tests auf dem Gerät, nicht vom Terminal, nach dem Ausführen von ADB-Befehl durchgeführt.

Jetzt möchte ich AndroidViewClient für Ansicht Vergleich irgendwo in meinen vorhandenen Tests verwenden. Um AndroidViewClient in das vorhandene Testframework zu integrieren, wäre es ideal, wenn ich das Skript (generiert von Culebra) auch das Culebra-Tool ausführen könnte, das das Skript in meinem AppTester.jar-Programm generiert.

Ist es möglich, das zu tun?

Antwort

1

uiautomator Tests müssen von adb ausgeführt werden, damit Sie es nicht loswerden. Dann brauchen Sie noch Ihren Computer, um die Tests auszuführen, so wäre es kein großer Unterschied, AndroidViewClient/culebra generierte Tests auf dem Gerät auszuführen, wenn Sie noch adb benötigen, um die anderen Tests auszuführen.

Having said, vielleicht gibt es einen Weg mit SL4A obwohl, ich habe es nicht versucht. Als AndroidViewClient/culebra Tests sind vollständig in Python und sie hängen von sehr wenigen Modulen vielleicht gibt es eine Chance.

Nächstes Werkzeug Generation, die Culebra Tester genannt wird (unter privaten Beta jetzt) ​​verfügt über die gleichen Fähigkeiten von culebra, sondern zusätzlich können nicht nur Python erzeugen, sondern auch Java, so dass Sie kein Problem Ihre Tests vereinen müssen. Es läuft vollständig auf dem Gerät, so ist die einzige externe Voraussetzung ein Browser.

Das Demonstrationsvideo zeigt die Generierung eines einfachen UiAutomator-Tests.

+0

@ dtmilano, um meine Frage besser zu verfeinern, kann ich den in Culebra geschriebenen Code wiederverwenden, der den Baum der Ansichten ablegt/vergleicht und diesen Teil in eine Anwendung einwickelt, die dasselbe auf dem Gerät macht? Funktioniert nicht auf Produktions-Hardware oder funktioniert nur auf einem Android-Simulator, erfordert Server/Client-Struktur? – emilywuq

+0

Wie ich in meiner Antwort erwähnt habe, benötigen Sie einige Berechtigungen in Ihren Tests, die nur gewährt werden, wenn Sie sie von 'adb' ausführen. Welche Tests von einer Anwendung gestartet wurden, ist möglicherweise durch die Berechtigungen eingeschränkt. Stellen Sie sich vor, jede App könnte auf die Ansichten anderer Apps zugreifen, dies wäre ein großes Sicherheitsproblem. –

+0

@ dtmilano, ich verstehe, dass uiautomator von adb ausgeführt werden muss. Die Fähigkeit, die ich haben möchte, ist, dass, sobald iuatumator meine AppTester.jar (adb Shell uiautomator läuft AppTester.jar -c com.uia.example.my.AppTester) laufen lässt, könnte ich Culebra-Skript (oder Java-Code) aus meinem AppTester heraus ausführen .jar, nehme an, dass ich den Culebra-Code wiederverwende und ihn ordnungsgemäß in AppTester.jar einpacke. Ist Culebra Tester oder ein Work-Around-Python (Culebra Python-Skript) in der Lage, das zu erreichen? – emilywuq

Verwandte Themen