Schwierigkeiten beim automatisierten Testen mobiler APPs
Automatisierte UI-Tests mobiler APPs stellen seit langem eine Schwierigkeit dar. Die Schwierigkeit liegt in der „Änderung“ der UI. Änderungen führen zu einer großen Anzahl von Wartungsarbeiten automatisierte Anwendungsfälle. Aus der Perspektive des mehrschichtigen Testens sollten automatisierte Tests Schicht für Schicht durchgeführt werden. Der größte Teil der automatisierten Tests sollte Unit-Tests sein, die am einfachsten zu implementieren sind und Probleme frühzeitig erkennen, gefolgt von Tests auf Schnittstellenebene, die zur Überprüfung der Logik durchgeführt werden ist relativ stabil, die Kosten für automatisierte Tests sind relativ gering; die UI-Schnittstelle ist jedoch eine direkte Rückmeldung an den Benutzer, insbesondere die Automatisierung auf BVT-Ebene Tests sind ebenfalls sehr notwendig. Um diese zu beseitigen, müssen wir einige automatisierte Tests einführen, die uns unterstützen. Jetzt, wo ich Zeit habe, werde ich die Gemeinsamkeiten und Unterschiede mehrerer automatisierter Test-Frameworks zusammenfassen, die üblicherweise in Android verwendet werden, damit Tester bei der Auswahl eines Automatisierungs-Frameworks eine Referenz haben!
AndroidMehrere häufig verwendete automatisierte Test-FrameworksVergleich1. Monkey ist ein Testtool, das mit dem Android SDK geliefert wird und während des Testvorgangs einen pseudozufälligen Benutzerereignisstream sendet B. Tasteneingabe, Touchscreen-Eingabe, Gesteneingabe usw.), um Stresstests der in der Entwicklung befindlichen Anwendung durchzuführen und auch über eine Protokollausgabe zu verfügen. Dieses Tool kann eigentlich nur einige Stresstests für das Programm durchführen, da die getesteten Ereignisse und Daten zufällig sind und nicht angepasst werden können, was große Einschränkungen mit sich bringt.
Ein weiteres vom Android SDK bereitgestelltes Testtool ist MonkeyRunner. Streng genommen ist MonkeyRunner eigentlich ein API-Toolkit, das leistungsfähiger als Monkey ist und Testskripte schreiben kann, um Daten und Ereignisse anzupassen. Das Skript ist in Python geschrieben, was von den Testern ein hohes Qualifikationsniveau erfordert, sodass die Lernkosten relativ hoch sind, was den Nachteil darstellt.
3. Robotium ist auch ein auf Instrumentierung basierendes Test-Framework. Es führt hauptsächlich automatisierte Tests für ein bestimmtes APK durch. Der Nachteil ist, dass Tester über eine bestimmte Java-Grundlage verfügen müssen Verstehe Android. Grundlegende Komponenten können keine Apps übergreifen.
4. Instrumentation ist eine frühe, von Google bereitgestellte automatisierte Test-Tool-Klasse. Obwohl JUnit damals auch Android testen konnte, können Sie mit Instrumentation komplexere Tests für Anwendungen durchführen, sogar auf Framework-Ebene Bei anderen Test-Frameworks kann die zu testende Komponente im selben Prozess geladen werden. Es verfügt über viele umfangreiche High-Level-Pakete, und Benutzer können andere auf Instrumentierung basierende Frameworks verwenden, um eine übermäßige Sekundärentwicklung zu vermeiden. Allerdings unterstützt Instrumentation keine anwendungsübergreifende Anwendung, was dazu führt, dass Frameworks, die auf Instrumentation basieren, diesen Mangel erben.
5. UIAutomator ist ein von Google bereitgestelltes Testframework, das erweiterte UI-Tests von nativen Android-Apps und -Spielen ermöglicht. Unterstützt grundsätzlich alle Android-Ereignisvorgänge. Im Vergleich zur Instrumentierung ist es nicht erforderlich, dass Tester die Codeimplementierungsdetails verstehen (Sie können UiAutomatorviewer verwenden, um die Steuerelementeigenschaften auf der App-Seite zu erfassen, ohne sich den Quellcode anzusehen).
Basierend auf Java ist die Testcodestruktur einfach, leicht zu schreiben und kostengünstig zu erlernen. Sie wird einmal kompiliert und alle Geräte oder Simulatoren können den Test ausführen. Er kann über mehrere Apps hinweg ausgeführt werden die Möglichkeit, das Album auszuwählen und die Kamera zu öffnen, um Bilder aufzunehmen.
Der Nachteil dieses Tools besteht darin, dass es nur SDK 16 (Android 4.1) und höher unterstützt und nicht mit Hybridanwendungen und Webanwendungen kompatibel ist.
6. Espresso ist Googles Open-Source-Framework für automatisierte Tests. Im Vergleich zu Robotium und UIAutomator zeichnet es sich durch einen kleineren Maßstab, eine einfachere und präzisere API, einfaches Schreiben von Testcode und einen einfachen, schnellen Einstieg aus. Da es instrumentierungsbasiert ist, kann es nicht zwischen verschiedenen Anwendungen verwendet werden.
7. Selendroid: Es ist ein Framework, das auf Instrumentation basiert und vollständig mit dem Webdriver-Protokoll kompatibel ist. Selendroid unterstützt die Ausführung auf Emulatoren und realen Geräten und kann als Grid-Knoten für Skalierung und paralleles Testen integriert werden.
Athrun ist ein mobiles Test-Framework/eine Plattform von Taobao, das sowohl iOS als auch Android unterstützt. Der Android-Teil basiert ebenfalls auf Instrumentation und basiert auf der ursprünglichen ActivityInstrumentationTestCase2-Klasse von Android, um einen vollständigen Satz objektorientierter APIs bereitzustellen.
Appium ist ein plattformübergreifendes automatisiertes Open-Source-Testtool und gilt als eines der leistungsstärksten Frameworks. Im folgenden Inhalt werde ich seine Funktionen und Verwendungsmöglichkeiten im Detail vorstellen.
Vorteile und Nachteile von AppiumSeine Vorteile:
①Unterstützt Native App, Hybird App, Web App;
③Unterstützt Android, iOS, Firefox OS; ist auch kreuz- Plattformplattform, Sie können Mac OS, C#, Ruby und andere gängige Sprachen verwenden
Da WebDriver erweitert wurde, muss das Rad für automatisierte Tests nicht neu erfunden werden. (WebDriver ist ein einfaches und schnelles automatisiertes Test-Framework zum Testen von WebApps, sodass Tester mit Erfahrung im automatisierten Web-Testen direkt loslegen können.
Mobiles automatisiertes Testen sollte Open Source sein;
Das obige ist der detaillierte Inhalt vonWas sind die 9 am häufigsten verwendeten Frameworks für automatisierte Tests für Android?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!