Testautomatisierungstool für eine Android-App

Das Android-Affen-Tool ist großartig!
Mit einer Skriptzeile startet es Ihre App und führt Automatisierungstests durch:

adb shell monkey -p my.greate.package + -c android.intent.category.LAUNCHER -s 123 --pct-touch 99 --throttle 20 -v 1000

Sie können es so konfigurieren, dass es viele Dinge tut. Im obigen Beispiel starte ich eine App nach Paketname und beschränke den Affen nur auf Touch-Ereignisse. Es werden 1000 Berührungsereignisse mit einem Intervall von 20 Millisekunden dazwischen ausgeführt.


Allerdings reicht mir dieses Tool nicht aus. Ich brauche etwas ohne vordefinierte oder aufgezeichnete Tests, das ich einfach starten kann. Aber der Affe sieht die Bildschirmkomponenten nicht, er klickt willkürlich auf den Bildschirm, und manchmal gibt es Schaltflächen, die er nie findet.

Ich habe diese Seite mit vielen Alternativen gesehen, aber keine, die sofort ohne Vorkonfigurationen gestartet werden kann.

Helfen Sie mir hier, wie mache ich meinen Affen schlauer oder finde eine bessere Alternative?

Sie möchten es also ohne (vordefinierte oder aufgezeichnete) Tests starten? Wie wird es unter diesen Umständen getestet und welche Art von Bericht erhoffen Sie sich zu sehen?
Ich habe andere Tools für die Berichterstattung, ich brauche sie nur, um durch die App navigieren zu können, ohne es zu wissen.
Ich verstehe nicht. Sie möchten die Anwendung ausprobieren, ohne zu wissen, wie sie funktioniert? Wenn die Anwendung einen internen Status hat, ist dies nicht möglich.
@IraBaxter Ich möchte meine Erfolgsquote maximieren. Natürlich gibt es Apps, in denen ich navigieren möchte.
Das klingt sehr nach Komponententests einer Funktion mit zufälligen Argumenten. Die ersten paar können unterschiedlich genug sein, um unterschiedliche Verhaltensweisen zu verursachen, aber im Allgemeinen wird die Eingabe in viele Äquivalenzklassen unterteilt, und die meisten zufälligen Argumentwerte erzeugen kein neues Verhalten. Warum denkst du, dass das funktioniert?
@IraBaxter MEIN Ziel ist es, in Apps zu navigieren, wie hängen die Funktionen hier zusammen? Wie auch immer, wenn Sie eine Diskussion darüber führen möchten, öffnen Sie einen Chatroom
Zufällige Eingaben in Funktionen sind analog zu zufälligen Eingaben auf dem Bildschirm. Und ersteres ist der Testing-Community seit langem als unwirksam bekannt. Es scheint einfach nicht so, als würde das Verfolgen zufälliger Eingaben effektiv sein. Kein Chatroom erforderlich.

Antworten (2)

Sie können Sikuli X verwenden , um alles zu automatisieren, was Sie auf Ihrem PC-Bildschirm sehen, einschließlich der Verwendung von Bilderkennung, um bestimmte Schaltflächen zu finden, auf die Sie klicken können, unabhängig von der tatsächlichen Position auf dem Bildschirm. Dies kann natürlich alles umfassen, was in der Emulationsumgebung auftritt oder von einem tatsächlichen Gerät auf dem PC-Bildschirm wiederholt wird.

Sie können klicken, doppelklicken, Ergebnisse überprüfen, Text in Felder eingeben usw., einschließlich des Startens von Programmen.

Es ist in Python- oder Java-Skript skriptfähig.

Das sieht interessant aus. In meinem Fall muss ich viele Anwendungen testen, die ich vorher nicht gesehen habe. Glauben Sie, dass es für mich nützlich sein wird? Weil ich nicht sicher bin, welche Art von Skript ich dort platzieren kann, außer den Interaktionsbereich auf meinen Emulatorbildschirm zu beschränken. Kann Sikuli X Schaltflächen oder Formen erkennen?
Sikuli erkennt alles auf dem Bildschirm und lässt sich schnell und einfach „trainieren“ – es ist verblüffend einfach zu bedienen.
Ok, ich versuche es mal, tnx

Ranorex ist auf der von Ihnen erwähnten Website, aber ich denke, es macht genau das, was Sie wollen. Sie können die bildbasierte Erkennung sowie XPath, eine leistungsstarke Kennung von UI-Elementen, verwenden. Ranorex enthält viele nützliche Tools zur Testautomatisierung , zum Beispiel Ranorex Spy, das für Sie sehr interessant sein könnte, da es Ihnen ermöglicht, Snapshot-Dateien von GUI-Elementen zu erstellen.

Es erfordert, dass ich die UI-Erkennungslogik selbst codiere und dann ein Ereignis gemäß meinen Erkennungsergebnissen simuliere. Obwohl es mit XPath eine gewisse Einfachheit gibt, werde ich opnecl für diese Aufgabe bevorzugen. Aber letztendlich bevorzuge ich es, etwas zu verwenden, das das bereits tut ...