Technologieaustausch

[Python Appium] automatisiertes Testen

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Die automatisierte Python+Appium-Testreihe geht zu Ende. Lassen Sie uns in diesem Blog eine Zusammenfassung erstellen.

Zunächst möchte ich erklären, dass automatisierte APP-Tests möglicherweise nicht von vielen Unternehmen verwendet werden, aber auch von den meisten Job-Rekrutierungsinformationen für automatisierte Testingenieure und leitende Testingenieure verlangt werden Zeit damit zu verbringen, es zu meistern. Denn wen auch immer, ich werde Probleme mit Geld haben.

Als Nächstes fassen wir die Ideen für automatisierte Tests der APP-Benutzeroberfläche zusammen.

1. Auswahl der Entwicklungssprache
Zu den häufig für automatisierte Tests verwendeten Programmiersprachen gehören: Python, Java, Javascript, Ruby, C#, PHP usw. Im Allgemeinen wählen wir eine Programmiersprache, mit der wir vertraut sind, um automatisierte Skripte zu schreiben, aber für Kinder, die praktisch keine Programmierkenntnisse haben (oder Kinder, die sich auf automatisierte Tests konzentrieren), wird empfohlen, den Umgang mit Python zu erlernen.

Im Vergleich zu anderen Sprachen bietet Python die folgenden Vorteile für automatisierte Tests:

Für Anfänger verfügt Python über eine prägnante Syntax, ist gut lesbar und leicht zu erlernen.

Es gibt leistungsstarke Bibliotheken von Drittanbietern, die die Skripterstellung effizienter machen.

Das automatisierte Test-Framework Pytest in Python ist derzeit eines der beliebtesten Test-Frameworks

2. Auswahl des UI-Test-Frameworks
Nachdem wir eine Entwicklungssprache ausgewählt haben, müssen wir ein UI-Testframework auswählen. Derzeit gehören Appium, Airtest usw. zu den gängigeren oder am weitesten verbreiteten APP-UI-Automatisierungstest-Frameworks.

1, Appium
Open Source

Der Appium-Server unterstützt die Ausführung unter Windows, macOS und Linux

Unterstützt mehrere gängige Programmiersprachen wie Python, Java, Javascript, Ruby usw.

Unterstützt automatisierte Android-, iOS- und H5-Tests (integrierter UiAutomator, UiAutomation-Framework)

Die Umgebungskonstruktion ist komplizierter

2, Lufttest
Entwickelt von NetEase (offizielles Dokument), unterstützt nur die Python-Sprache

Bietet eine leistungsstarke IDE, die die Test-Frameworks Airtest und Poco integriert und für Anfänger sehr benutzerfreundlich ist

Integrieren Sie airtest, ein auf Bilderkennung basierendes Framework für automatisierte UI-Tests, damit Sie automatisierte Skripte schreiben können, auch wenn Sie den Code nicht verstehen.

Plattformübergreifend, kann automatisierte Tests von Windows-, Android- und iOS-Anwendungssoftware durchführen

Freundlicher für Spieletests

Airtest und Poco sind im Wesentlichen zwei Drittanbieter-Bibliotheken für Python. Die Testumgebung ist nicht so kompliziert wie Appium.

3. Wählen Sie den Rahmen aus
Wählen Sie einen geeigneten Rahmen basierend auf der tatsächlichen Situation.

In den folgenden Situationen können Sie dem Airtest von NetEase (offizielle Website von Airtest) Vorrang einräumen:

Keine Programmiergrundlage

Spieltests

Das Testszenario ist relativ einfach (Appium ist relativ umfangreich)

Automatisierung des Alipay-Miniprogramms (der Blogger verwendet derzeit das in Airtest integrierte Poco-Framework zum automatisierten Testen des Alipay-Miniprogramms)

Es wird empfohlen, Appium in den folgenden Situationen zu wählen:

Das Testszenario ist relativ komplex (z. B. ist ein Stapeltest mehrerer Mobiltelefone erforderlich).

Die Testskriptsprache ist nicht Python (Airtest unterstützt derzeit nur Python)

3. Auswahl des Unit-Test-Frameworks
Anders als das oben erwähnte UI-Test-Framework wird das Unit-Testing-Framework zum Laden von Testfällen, zum Ausführen von Testfällen, zum Bestätigen, zum Ausgeben von Testergebnissen usw. verwendet.

Verschiedene Entwicklungssprachen verfügen über ihre eigenen entsprechenden Unit-Test-Frameworks, z. B. JUnit, TestNG, Robot usw. für Java und Unittest, Pytest usw. für Python. Blogger verwenden Python hauptsächlich für automatisierte Tests, daher erklären wir hier nur das Python-Unit-Test-Framework.

Pythons Mainstream-Unit-Test-Framework:

unittest, Pythons eigenes Unit-Testing-Framework

Pytest wurde auf Basis von Unittest entwickelt, ist einfach zu verwenden, verfügt über detailliertere Informationen und viele Plug-Ins.

Roboter-Framework, ein auf Python basierendes schlüsselwortgesteuertes Test-Framework mit einer Schnittstelle, integrierten Berichten und Protokollen, vollständigen Funktionen, klar und schön

Es wird dringend empfohlen, hier Pytest zu verwenden, das leistungsstark und einfach zu verwenden ist. Die offizielle Dokumentation ist auf Englisch. Informationen zu Chinesisch finden Sie im Pytest-Benutzerhandbuch.

4. Einrichtung der Testumgebung
1. Computerauswahl testen
Wenn möglich, wird empfohlen, speziell für UI-Automatisierungstests einen Mac-Computer zu verwenden, da die UI-Automatisierung von iOS-Apps nur auf einem Mac-Computer durchgeführt werden kann.

2. Handyauswahl testen
Wenn Sie zum ersten Mal mit dem Debuggen von Testskripten beginnen, können Sie einen Emulator auswählen. Für Android-Emulatoren können Sie den Emulator Gernymotion oder Yeshen wählen.

Nachdem die Entwicklung des gesamten Testprojekts abgeschlossen ist, wird empfohlen, auf einen realen Computer zu wechseln, um das automatisierte Skript auszuführen, das dem tatsächlichen Benutzernutzungsszenario näher kommt.

3. Entwicklungssprachenumgebung
Es wird empfohlen, eine Version von Python 3 oder höher zu installieren. Der Beamte hat die Aktualisierung und Wartung der Python2-Version eingestellt.

4. Aufbau einer Framework-Umgebung für UI-Automatisierungstests
Das Erstellen von Appium in einer Windows-Umgebung ist etwas komplizierter. Das Erstellen von Appium unter Mac ist etwas komplizierter. Ich werde später einen Blog schreiben.

Wenn Sie sich für das Airtest-Framework entscheiden, besuchen Sie bitte die offizielle Website.

5. Drehbuchschreiben
1. Testdemo schreiben
Um zu überprüfen, ob die gesamte Testumgebung erfolgreich erstellt wurde und ob gängige Beispiele ausgeführt werden können, müssen wir im Allgemeinen ein einfaches Testskript schreiben und ausführen. Wenn es erfolgreich ist, bedeutet dies, dass die gesamte Umgebung erfolgreich erstellt wurde.

2. Bestimmen Sie die Verzeichnisstruktur
Es wird empfohlen, das Designmuster „Page Object“ zu verwenden, um Testprojekte für die APP-UI-Automatisierung zu entwickeln.

3. Wählen Sie den Testbericht aus
Verschiedene Entwicklungssprachen und unterschiedliche Unit-Test-Frameworks können unterschiedliche Testberichte verwenden. In Python verwendet das Unittest-Framework HTMLTestRunner oder BSTestrunner, um Testberichte zu generieren. Das Pytest-Framework verwendet Pytest-HTML, um Berichte zu generieren oder Testberichte über Allure anzupassen.

Nachdem die oben genannten Schritte abgeschlossen sind, fügen Sie dem Testprojekt weitere Testfälle hinzu.

6. Jenkins-Integration
Nachdem das gesamte App-UI-Automatisierungstestprojekt gemäß den oben genannten Schritten geschrieben wurde und über einen bestimmten Zeitraum stabil läuft, können Sie die Integration von Jenkins in Betracht ziehen.

7. Zusammenfassung
Zusammenfassend kann die Automatisierung der APP-Benutzeroberfläche auf folgende Weise implementiert werden:

1. Python + Appium + Unittest + HTMLTestRunner

2. Python + Appium + pytest + pytest-html / Faszination

3. Python + Airtest (AirtestIDE)

4. Python + Poco + pytest + pytest-html / Locken

Sie können entsprechend der tatsächlichen Situation wählen.

Abschließend möchte ich mich bei allen bedanken, die meinen Artikel sorgfältig lesen. Gegenseitigkeit ist zwar keine sehr wertvolle Sache, aber wenn Sie sie nutzen können, können Sie sie direkt nutzen.

Diese Informationen sollten das umfassendste und vollständigste Vorbereitungslager für Freunde von [Softwaretests] sein. Dieses Lager hat auch Zehntausende von Testingenieuren auf der schwierigsten Reise begleitet.