Vergleich und Kombination von Web- und mobilen Testautomatisierungstreibern

Zuletzt aktualisiert am 12. Februar 2019 — Continuous Testing Experten

Die Gemeinsamkeiten und Unterschiede zwischen Web- und mobilen Testautomatisierungstreibern mit Schwerpunkt auf Appium und Selen. Lesen Sie weiter, um mehr zu erfahren.

Es gibt eine Reihe von Tools, die für die Web- und mobile Testautomatisierung verwendet werden. Sie unterscheiden sich in der Funktionalität, den unterstützten Plattformen und den Nutzungsbedingungen. Zu diesem Zweck konzentrieren wir uns nur auf zwei davon: Appium und Selenium.

Entwickler und Tester nutzen das Appium-Framework für die Automatisierung von Web-, nativen und hybriden mobilen Anwendungen. Das Selenium-Framework wird für die Automatisierung von Webanwendungen verwendet. Darüber hinaus ist Selenium in JAVA geschrieben, Appium – in JavaScript. Obwohl sie auf den ersten Blick unterschiedlich sind, haben sie eines gemeinsam: Appium und Selenium nutzen das webDriver-Protokoll, um mit der Zielplattform zu kommunizieren: Appium mit dem mobilen Gerät, Selenium entsprechend mit einem Webbrowser. Im Allgemeinen kann ein Selenium webDriver-Skript sowohl in einem Browser für mobile Geräte als auch in einem Desktop-Browser ausgeführt werden, um dieselben Aktionen für dieselbe Webanwendung auszuführen.

Der Unterschied zwischen Web- und mobilen Testautomatisierungstreibern

Vor allem der Unterschied zwischen Web und Mobile Testautomatisierung Treiber liegen in der Funktionalität, den unterstützten Plattformen und der Konfiguration des Prüfstands zur Durchführung von Tests. Insbesondere Appium fungiert als HTTP-Server, für den es mehrere Clients gibt: Java, JavaScript, Python, C#, Ruby. Tatsächlich ist ein Appium-Client die Hülle über die Selenium webDriver-Clientbibliotheken. Appium verwendet zusätzlich zu Selenium einen erweiterten Satz der webDriver-APIs, die speziell für die Interaktion mit mobilen Geräten konzipiert sind. Appium enthält beispielsweise Befehle zur Unterstützung von Multi-Touch-Gesten und zur Bildschirmausrichtung, zur Verwaltung von Geolokalisierungsdaten, zum Zugriff auf Geräteprotokolle und viele andere.

Der Appium-Server ermöglicht Appium-Benutzern den Zugriff auf die Steuerung von Funktionen des getesteten Geräts, beispielsweise die Installation und Entfernung einer Anwendung während der Testsitzung. Für Selenium gibt es dieselben Client-Implementierungen. Für die verteilte Testausführung ist jedoch nur dann ein Selenium-Server erforderlich, wenn wir ein Selenium-Grid installieren müssen.

Zur Verdeutlichung: Selenium unterstützt die wichtigsten Browser, die auf den wichtigsten Desktop-Betriebssystemen ausgeführt werden. Appium unterstützt eine Vielzahl von iOS- und Android-Geräten für die offiziell unterstützten Versionen von iOS und Android. Darüber hinaus kann Appium die Automatisierung von MS Windows-Anwendungen bereitstellen. Andererseits gibt es einen Unterschied im Aufwand, der erforderlich ist, um die Infrastruktur für Appium- und Selenium-Tests zu konfigurieren. Um Appium-Tests durchzuführen, müssen Sie nodeJS installieren, Appium installieren, das SDK sowie bestimmte Gerätetreiber und Frameworks konfigurieren. Für einen Selenium-Testfall sind nicht so viele Schritte zum Konfigurieren der Umgebung für Testentwicklungen und -ausführung erforderlich, es sei denn, Sie installieren den Selenium-Server, um Tests für Selenium Grid auszuführen. Die Diagramme der Appium- und Selen-Stacks sind in den folgenden Bildern dargestellt.

Das Beispiel der Verwendung beider Frameworks für die mobile Web-Automatisierung

Die gemeinsame Basis beider Frameworks ermöglicht trotz der oben aufgeführten Unterschiede den gemeinsamen Einsatz für Web- und Mobile-Testautomatisierung. Wenn wir eine Webanwendung im mobilen Browser testen müssen, können wir sowohl Appium- als auch Selenium-Frameworks verwenden und sie ergänzen sich in einem Test. Unten sehen Sie beispielsweise einen Link zu einem einfachen Test in GIT, der eine Seite der Amazon.com-Site im Android Chrome-Browser auf einem mobilen Gerät öffnet.

Android-Beispieltest.

Testcodes verwenden sowohl Selenium- als auch Appium-Bibliotheken, um mit dem Browser auf einem mobilen Gerät zu interagieren. Appium-Clientobjekte werden verwendet, um einen Gerätetreiber zu initialisieren, den Android Chrome-Browser zu definieren und ihn zu steuern. Selenium wird verwendet, um mithilfe des Selenium-Objekts „By“ das Objekt „Gewünschte Funktionen“ zu definieren, das den Gerätetreiber und den mobilen Browser steuert und mit der Webanwendung interagiert (im Test wird die Website Amazon.com verwendet). Die Verwendung dieser Objekte ermöglicht den Zugriff auf die Webelemente des mobilen Browsers.

Der Test wird am ausgeführt die SeeTest-Plattform – cloudbasierte Plattformund bietet eine große Anzahl von Browsern und Mobilgeräten für die Entwicklung sowie die Testautomatisierung im Web und auf Mobilgeräten. Zum Vergleich gibt es den Test, der sich öffnet cloud.seetest.io Rufen Sie die Website-Seite im Google Chrome-Browser auf der Mac-Plattform auf, finden Sie dann einige Links auf der Seite und klicken Sie auf die gefundenen Links. In diesem Fall werden ausschließlich Selenium-Objekte verwendet, die den Remote-Browser auf der SeeTest-Cloud-Plattform steuern und im Test festgelegte Aktionen ausführen. Schauen Sie sich den Code für den Test im folgenden Link an.

Chrome-Beispieltest.

Der zweite Test wird ebenfalls auf der SeeTest-Plattform ausgeführt und kann ausgeführt werden. Beide Tests können sein heruntergeladen, kompiliert und gestartet. Verwenden Sie dazu den Befehl „mvn clean install“. Da beide Tests auf der SeeTest-Plattform ausgeführt werden sollen, vergessen Sie nicht, den Zugriffsschlüssel Ihres SeeTest-Kontos zu den Systemvariablen hinzuzufügen, bevor Sie Tests starten.

Das erste oben gezeigte Beispiel veranschaulicht sowohl Appium- als auch Selenium-Tests und ist eines der Beispiele für die Web- und mobile Testautomatisierung. Dieser Fall tritt auf, wenn eine Webanwendung sowohl im Desktop- als auch im mobilen Browser ausgeführt werden muss, was heutzutage häufig vorkommt.

Ein Beispiel für die Verwendung von Appium und Selenium zur Automatisierung nativer mobiler Anwendungen

Neben der Anforderung, verschiedene Browser auf mehreren Mobil- und Desktop-Plattformen zu unterstützen, können moderne Anwendungen über mehrere Arten von Clients verfügen: Web, Desktop, Mobil, die wiederum auf verschiedenen Hardwareplattformen unter verschiedenen Betriebssystemen ausgeführt werden können. Für einen QA-Ingenieur bedeutet dies vor allem die Notwendigkeit, Tests auf allen möglichen Kombinationen von Hardware, Betriebssystem und Browser durchzuführen. Ein möglicher Anwendungsfall, wenn zwei unterschiedliche Clients verwendet werden, ist beispielsweise der Fall, dass ein Benutzer des mobilen Clients eine Aktion ausführt und ein anderer Benutzer des Web-Clients das Ergebnis dieser Aktion erhält oder umgekehrt.

Ein Beispiel für einen solchen Fall ist ein Beitrag in einem sozialen Netzwerk, der von verschiedenen Kunden überprüft werden muss. Ein weiteres Beispiel ist ein Chat, bei dem ein Benutzer eines mobilen Clients eine Nachricht sendet und ein Benutzer eines Webclients die Nachricht empfängt oder umgekehrt. Aus Sicht des Testfalls muss die Interaktion zwischen den beiden Arten von Clients nachgeahmt werden: Mobil- und Web-Client. In einem Test werden also sowohl Appium- als auch Selenium-Frameworks verwendet, und diese Art von Test kombiniert sowohl Selenium- als auch Appium-Tests. In diesem Test werden Appium-Objekte zur Verwaltung des Mobilgeräts verwendet, während Selenium-Objekte zur Verwaltung und Interaktion mit dem Browser auf der Desktop-Plattform verwendet werden. Ein Test soll auch auf dem SeeTest-Clouddienst durchgeführt werden.

Was Implementierungen betrifft, können Tests für diese Clients in separaten Modulen geschrieben und parallel mit SeeTest für die entsprechenden Instanzen ausgeführt werden. In diesem Beispiel ergänzen sich Selen und Appium. Dies ist ein weiteres Beispiel für Web- und mobile Testautomatisierung.

Basiert das Appium-Framework auf Selenium oder nicht?

Und zum Schluss noch ein Hinweis zur Automatisierung nativer mobiler Anwendungen. Wenn wir UI-Tests für sie schreiben und mit den Elementen auf mobilen Seiten interagieren, greifen wir über das Objekt darauf zu, das eine Instanz der Klasse io.appium.java_client.MobileElement ist, die von org.openqa.selenium.remote.RemoteWebElement erweitert wurde. Das bedeutet, dass Tests für die nativen mobilen Anwendungen Selenium implizit verwenden, um auf mobile Seitenelemente zuzugreifen.

Fazit

Zusammenfassend lässt sich sagen, dass Selenium und Appium keine isolierten Frameworks sind, die nur für die Web- und mobile Testautomatisierung verwendet werden können. Dementsprechend können diese Frameworks zusammen in einem Test zum Testen von Webanwendungen im mobilen Browser und zur Implementierung komplexer Testfälle verwendet werden , die Interaktionen mit Web- und mobilen Clients beinhalten. Alle diese Testfälle können problemlos ausgeführt werden die SeeTest-Plattform, das kurz gesagt eine Vielzahl mobiler Geräte und Browser für Tests bereitstellt. Darüber hinaus steht SeeTest an der Spitze der Cloud-Plattformen für die Durchführung von Web- und mobilen Testautomatisierungen.

Um aus erster Hand zu sehen, wie das Ganze funktioniert, Klicken Sie hier für eine kostenlose Testversion.

Auch interessant