Ich bin derzeit auf der Suche nach einer Lösung zum automatischen Testen von Android Apps, nativen Android-Apps sowie hybriden Cordova / Phonegap-Apps.
Der UI Automator von Google sieht gut aus, kann aber nicht mit WebViews umgehen, was ihn für mich unbrauchbar macht. Dann fand ich den viel versprechenden Automatisierungsrahmen Appium auf Basis von Selenium, der auch mit hybriden Apps zurechtkommen soll, aber das konnte ich nicht Es funktioniert nicht mit WebViews, es scheint noch nicht vollständig implementiert zu sein, wie auch mehrere Posts beweisen.
Nachdem ich Appium ausprobiert hatte, fand ich einen Hinweis für Selendroid , das auch für hybride Apps funktionieren sollte, aber es scheint ziemlich viel zu sein Buggy und stürzt ständig den ganzen Computer ab.
Also, kennt hier jemand eine funktionierende Lösung zum Testen von Android Apps mit WebViews? Ich arbeite an Windows 7. Vielen Dank im Voraus für jede Hilfe.
Im ersten Fall müssen wir wissen, welche Art von Tests Sie fahren möchten. Ich denke, Sie möchten Funktionstests auf der Benutzeroberfläche ausführen? Das ist, worüber ich nach dem Lesen Ihrer Frage nachdenken kann.
Also lasst uns das durch die gegebene Umgebung teilen:
Gappium basierend auf appium verwendet json zum Schreiben Ihrer Tests. Da ich den Thread richtig verstanden habe, wurde er für diesen Moment mit Web / iOS getestet. Android / Win scheint für diesen Moment nicht integriert zu sein:
Es ist möglich, Ripple und Selen zum Testen hybrider Apps zu verwenden. Denken Sie daran, dass einige native Funktionen / Plugins (die nativen Funktionen auf Hybrid-Apps ... =) nicht getestet werden können oder auf eine unbekannte Weise verspottet werden müssen. Das ist das Material für diesen Moment.
Im Allgemeinen ist das Testen von Hybrid-Apps eine Herausforderung mit API-basierten Ansätzen. Es kann getan werden, aber in der Regel müssen Sie die UI-Technologien (z. B. WebView, Native, OpenGL, ...) mit mehreren APIs oder einer Art Wrapper (wie Selendroid) integrieren.
Hier bei TestObject (ich bin einer der Mitbegründer) haben wir einen Ansatz für das Testen von Image-basierten UI speziell für Fälle wie Hybrid-Apps, Interaktion zwischen Apps usw. entwickelt. Dieser Black-Box-Ansatz basiert ausschließlich auf der Erfassung des Bildschirms - es ist uns egal, was darunter passiert.
Fühlen Sie sich frei, es mit Ihrer hybriden Cordova / Phonegap App auszuprobieren ( Ссылка ) und lassen Sie mich wissen, wie es im Vergleich zu UI Automator, Selendroid, Appium. Lassen Sie uns wissen, wenn Sie über irgendwelche Probleme stolpern.
Ich stellte diese Herausforderung mit unserer eigenen Cordova-App (sourceforge.net/p/ustadmobil/codehtml5cordova/ci/master/tree/); und ich brauchte eine Möglichkeit, dies mit Jenkins CI zu integrieren. Wir haben Cordova-spezifischen Code (z. B. Dateisystemzugriff), so dass nur die Verwendung von PhantomJS und Grunt keine Option ist.
Im Wesentlichen habe ich die App mit der Testseite als index.html im Emulator gestartet, einen HTTP-Server ausgeführt und die Ergebnisse dann mithilfe der Testseite mit AJAX zurückgegeben.
Script startet einen Emulator mit dem Paket
$ / opt / adt / sdk / tools / emulator-x 86 -avd $ AVDNAME -qemu -m 2047 & amp;
$ EMULATEPID = $!
$ adb wait-for-device # wartet darauf, dass das Gerät startet
$ adb shell input keyevent 82 #unlock Bildschirm
Erstellen Sie eine Testseite mit qunit, die nach Abschluss die Testergebnisse mit einem AJAX-Aufruf kommuniziert.
Bemerkenswert ist auch, dass dieser Ansatz für den plattformübergreifenden Charakter von Cordova funktioniert: Es sollte möglich sein, den gleichen Ansatz wie iOS, Windows Phone Emulatoren usw. zu verwenden (ich verwende diese Testmethode auch für unsere NodeWebKit-Desktop-Version, die die meisten teilt) der Code).
Hoffe, das hilft,
-Mike
Tags und Links android cordova testing android-webview selenium