2

Ich benutze AndroidViewClient seit ein paar Monaten und ich mag es so weit, es ist einfach und ein ziemlich mächtiges Werkzeug. Ich versuche, eine automatisierte Testplattform für ein umfassenderes und gründliches automatisiertes Testen unseres Produkts zu entwickeln, und ich werde mich entscheiden müssen, ob wir bei AndroidViewClient bleiben oder zu Espresso oder anderen Tools wie Selen wechseln. Ich weiß, Androidviewclient ist im Grunde für Black-Box-Tests und benötigt keinen Zugriff auf den Quellcode. Kann jemand einige Fähigkeiten/Vorteile von Espresso auflisten, die AndroidViewClient nicht bietet? Ich würde gerne einen Vergleich zwischen den beiden Tools in Bezug auf die Fähigkeiten sehen.Was sind einige der Nachteile von AndroidViewClient/Culebra gegenüber Espresso für Android GUI Automated Testing?

Antwort

2

Es ist eine wirklich gute Frage, aber ich fürchte, es gibt keine direkte und einfache Antwort, es hängt vom Kontext ab.

Außerdem in der Nähe Vergleich würde AndroidViewClient/culebra vs. UI Automator sein, da sie alle unterschiedliche Ziele haben:

  • Espresso: UI-Test-Framework; Geeignet für den funktionalen UI-Test innerhalb einer App. Espresso eignet sich gut zum Schreiben automatisierter Tests im White-Box-Stil, bei denen der Testcode die Details des Implementierungscodes aus der zu testenden App verwendet.
  • UI Automator: UI-Testframework; Geeignet für Cross-App-Tests für funktionale UI zwischen System und installierten Apps. Das UI Automator-Testframework eignet sich gut zum Schreiben automatisierter Black-Box-Tests, bei denen der Testcode nicht auf interne Implementierungsdetails der Ziel-App angewiesen ist.

In Bezug auf UI Automator vs AndroidViewClient/culebra, bieten beide fast die gleiche Funktionalität wie ein von AndroidViewClient/culebra möglich Backend ist genau UI Automator. Der Hauptunterschied besteht natürlich darin, dass der erstere Java und den letzteren Python verwendet.

Espresso größter Vorteil ist UI thread synchronization, die hilft, Tests zu vermeiden, die zufällig aufgrund von Timing-Problemen fehlschlagen können. Dieses Testproblem wird als Testflockigkeit bezeichnet. Vor Espresso bestand die Problemumgehung darin, einen ausreichend langen Schlaf- oder Timeout-Zeitraum in einen Test einzufügen oder Code hinzuzufügen, um den fehlgeschlagenen Vorgang erneut zu versuchen.

culebra generiert Tests (und Skripts) automatisch für UI Automator. Der Code wird generiert, indem Sie Ihre eigenen Interaktionen auf einem Gerät aufzeichnen, sodass Sie keinen Testcode schreiben müssen. Die nächste Generation, CulebraTester, hat eine neue Benutzeroberfläche und die Möglichkeit, Python-, Java- und Javascript-Tests zu generieren.

enter image description here

Espresso-Test Recorder in neuester Vorschau Android Studios macht fast das gleiche für Espresso.