testproject python sdk tutorial
TestProject Python SDK Tutorial: Laden Sie Ihre vorhandenen Selen- und Appium-basierten Tests aufDieses Tutorial hilft Ihnen beim Einstieg in das TestProject Python SDK. Erfahren Sie, wie Sie die leistungsstärksten Funktionen des SDK installieren, konfigurieren und verwenden:
Selen und Appium gehören seit Jahren zu den beliebtesten Open-Source-Test-Frameworks für Desktop-Browser und mobile Tests.
Das TestProject Python SDK baut auf diesen Tools auf und bietet Ihnen die Leistung der TestProject-Plattform. Sie erhalten wunderschöne HTML- und PDF-Berichte zu ihren Berichtsplattformen, automatische Browsererkennung, Treiberkonfiguration und vieles mehr.
Und das Beste ist, dass die Verwendung der TestProject-Plattform und des SDK für immer völlig kostenlos ist. Das SDK ist ebenfalls Open Source. Wenn Sie also einen Beitrag zum Projekt leisten möchten, können Sie dies tun!
Was du lernen wirst:
Was ist das TestProject Python SDK?
In diesem Tutorial erfahren Sie, wie Sie mit dem TestProject Python SDK beginnen, wie Sie die TestProject-Plattform mit Ihren vorhandenen Selenium- und Appium-basierten Tests nutzen und einige der leistungsstärksten Funktionen des SDK verwenden.
Hinweis : Sind Ihre Tests in einer anderen Sprache als Python geschrieben? Kein Grund zur Sorge, TestProject bietet auch SDKs für Java und C # an. Weitere Sprachen werden in naher Zukunft verfügbar sein.
Installation und Konfiguration
=> Besuchen Sie diese Seite für eine kostenlose TestProject-AnmeldungPython SDK ist verfügbar unter PyPI , der Python-Paketindex. Hier gehen wir davon aus, dass Sie über eine funktionierende Python-Installation verfügen. Sie müssen lediglich das SDK installieren und müssen dies tun Führen Sie den folgenden Befehl aus:
pip install testproject-python-sdk
Dadurch werden das SDK und die erforderlichen Abhängigkeiten installiert, einschließlich Selenium und des Python Appium-Clients.
Bevor wir das SDK verwenden können, müssen wir noch zwei weitere Dinge tun.
# 1) Installieren und konfigurieren Sie den TestProject Agent auf Ihrem Computer:
Der TestProject Agent ist für die Installation und Konfiguration des Browsertreibers sowie für das Senden der vom SDK generierten Berichte an die TestProject-Plattform verantwortlich.
Nachdem Sie ein Konto auf dem erstellt haben TestProject Plattform (wieder ist dies kostenlos), können Sie Ihren Agenten herunterladen.
Nach dem Herunterladen müssen Sie es installieren und starten. Standardmäßig läuft der Agent weiter http: // localhost: 8585. Wenn Sie den Agenten an einem anderen Port oder sogar auf einem völlig anderen Computer ausführen möchten, ist dies kein Problem. In diesem Fall müssen Sie lediglich die richtige Agentenadresse in einer Umgebungsvariablen angeben TP_AGENT_URL um dem SDK mitzuteilen, wo es ausgeführt wird.
# 2) Holen Sie sich ein Entwicklertoken und konfigurieren Sie es:
Für die Kommunikation mit dem Agenten benötigen Sie ebenfalls ein Entwicklertoken. Nach der Installation des Agenten können Sie Ihr Entwicklungstoken von der TestProject-Plattform abrufen (siehe Abbildung unten).
Geben Sie Ihr Entwicklertoken in einer Umgebungsvariablen an TP_DEV_TOKEN um das SDK darauf aufmerksam zu machen. Alternativ können Sie es als Argument angeben, wenn Sie eine neue Treibersitzung erstellen, wie wir gleich sehen werden.
Nachdem Sie das SDK heruntergeladen, den Agenten installiert, konfiguriert und gestartet, Ihr Entwicklertoken erhalten und konfiguriert haben, können Sie loslegen.
Erstellen unseres ersten TestProject-basierten Selentests
Nehmen wir an, wir haben einen Selen-basierten Test, der zur TestProject-Demo-Web-App navigiert. Es enthält Anmeldeinformationen und überprüft, ob wir begrüßt werden, um anzuzeigen, dass die Anmeldeaktion erfolgreich abgeschlossen wurde. Nehmen wir außerdem an, dass wir das Pytest-Unit-Test-Framework verwenden, um diesen Test auszuführen und die Zusicherungen auszuführen.
Ein solcher Test könnte ungefähr so aussehen:
from selenium import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.get('https://example.testproject.io/web/') driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() is True driver.quit()
Im obigen Beispiel wird Chrome als Browser verwendet. Neben Chrome unterstützt das SDK auch die folgenden Desktop-Browser:
- Feuerfuchs
- Kante
- Internet Explorer
- Safari
In diesem Beispiel haben wir keines der Abstraktionsmuster verwendet, die in Selen-basierten Tests üblich sind, z. B. Seitenobjekte. Wenn Sie diese jedoch verwenden, ist dies überhaupt kein Problem. Wir empfehlen es sogar, da dies eine klare Trennung zwischen Ihrem Testablauf (Aktionen, Testdaten) und den Implementierungsdetails Ihrer Webseiten (Element-Locators) schafft.
Nachdem Sie alle oben gezeigten Installations- und Konfigurationsschritte abgeschlossen haben, müssen Sie lediglich die Importanweisung wie unten erläutert ersetzen, um diesen Test in einen TestProject-basierten Test umzuwandeln.
from selenium import webdriver
Relace mit diesem:
from src.testproject.sdk.drivers import webdriver
Das ist es! Sobald Sie den Test jetzt ausführen, fordert das SDK eine Treiberinstanz vom TestProject Agent an und verwendet diese, um den Test auszuführen. Außerdem werden Berichtsanweisungen an die TestProject-Plattform gesendet, die dann zum Erstellen von HTML-Berichten verwendet werden. Schauen wir uns diese an!
Überprüfen von Berichten auf der TestProject-Plattform
Wenn Sie zum Testprojekt gehen und im Menü die Optionen 'Berichte' auswählen, können Sie sehen, dass für den Test, den wir gerade ausgeführt haben, ein neuer Bericht erstellt wurde. Siehe das Bild unten.
Erstellen Sie ein neues Java-Projekt in Eclipse
Wie Sie sehen, hat das SDK automatisch einen Projektnamen abgeleitet ( software_testing_help ), ein Jobname ( Beispiele ) und einen Testnamen ( test_login_to_testproject_example_app ) und verwendete diese beim Erstellen des Berichts. Dies wird sowohl für Pytest als auch für Unittest sowie für Tests unterstützt, die nicht mit einem dedizierten Unit-Test-Framework ausgeführt werden.
Im nächsten Abschnitt erfahren Sie, wie Sie die benutzerdefinierten Projekt-, Job- und Testnamen sowie eine Reihe weiterer nützlicher Berichtsoptionen angeben.
Alle Treiberbefehle, die während des Tests ausgeführt wurden, werden automatisch zusammen mit ihrem Ergebnis zum Bericht hinzugefügt. TestProject generiert außerdem sofort Übersichten und Dashboards.
Berichtsanpassungsoptionen mit TestProject
Während TestProject sofort umfangreiche und verwendbare Berichte generiert, gibt es eine Reihe von Möglichkeiten, wie Sie sie noch besser an Ihre Informationsanforderungen anpassen können.
Wie wir im vorherigen Beispiel gesehen haben, kann TestProject automatisch Projekt-, Job- und Testnamen für die beliebtesten Python-Unit-Test-Frameworks ableiten. Wenn Sie jedoch benutzerdefinierte Namen in Ihren Berichten verwenden möchten, können Sie dies auch auf zwei verschiedene Arten tun.
# 1) Mit einem Dekorateur
Das TestProject SDK bietet außerdem a @Bericht Dekorateur, mit dem Sie Ihre Testmethoden dekorieren können und den Sie verwenden können Geben Sie die benutzerdefinierten Projekt-, Job- und Testnamen wie folgt an:
from src.testproject.sdk.drivers import webdriver from src.testproject.decorator import report @report(project='Software Testing Help', job='SDK Examples', test='Login Test') def test_login_to_testproject_example_app(): driver = webdriver.Chrome() # the rest of the test method remains unchanged
Wenn wir diese dekorierte Testmethode ausführen und die Berichte überprüfen, können wir feststellen, dass die angegebenen Namen im generierten Bericht anstelle der automatisch abgeleiteten verwendet wurden.
# 2) Projekt- und Jobnamen im Treiberkonstruktor angeben und einen Test manuell melden:
Projekt- und Jobnamen können auch überschrieben werden, indem sie im Konstruktor des Treiberobjekts angegeben werden. Dies kann wie folgt erfolgen:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome(projectname='Software Testing Help', jobname='SDK Examples') # the rest of the test method remains unchanged
Wenn Sie den automatisch abgeleiteten Testnamen überschreiben möchten, können Sie einen Test am Ende des Tests wie folgt manuell melden:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome(projectname='Software Testing Help', jobname='SDK Examples') driver.get('https://example.testproject.io/web/') driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() is True driver.report().test(name='Login Test', passed=True) driver.quit()
Wenn Sie die manuelle Berichtsoption verwenden, sollten Sie die automatische Berichterstellung für Tests (die standardmäßig aktiviert ist) deaktivieren, um sicherzustellen, dass Tests nicht zweimal gemeldet werden, da dies Ihren Bericht und Ihre Dashboards beschädigen würde.
Sie können die automatische Berichterstellung mit dem folgenden Befehl deaktivieren:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_auto_test_reports(disabled=True) # the rest of the test method remains as above
Dadurch sieht der Bericht genauso aus wie der letzte Screenshot oben.
# 3) Deaktivieren der Berichterstellung für Treiberbefehle
Wenn Sie nicht möchten, dass Ihr Bericht jeden einzelnen Treiberbefehl enthält, der während des Tests ausgeführt wurde, können Sie die automatische Berichterstellung wie folgt deaktivieren:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_command_reports(disabled=True) # the rest of the test method remains unchanged
Sie können die Treiberbefehlsberichterstattung auch später in Ihren Tests wieder aktivieren, indem Sie dieselbe Methode erneut aufrufen, jedoch mit dem Argument disabled = False.
Wenn Sie während Ihres Tests noch einige Zwischenschritte melden möchten, können Sie dies auch tun:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_command_reports(disabled=True) driver.report().step(description='An intermediate step', message='A custom message', passed=True, screenshot=True) # here goes the rest of the test method
Wie Sie sehen, können Sie Ihren benutzerdefinierten Berichtsschritten sogar Screenshots hinzufügen. Diese werden automatisch in den HTML-Bericht auf der TestProject-Plattform integriert.
Das TestProject SDK bietet weitere Optionen, um Ihre Berichterstellung weiter anzupassen. Eine vollständige Übersicht finden Sie in der offiziellen Dokumentation auf der TestProject-Website, bei GitHub oder PyPI.
Ausführen von Appium-basierten Tests mit TestProject
Neben Selenium-basierten Tests kann das TestProject SDK auch Tests auf Mobilgeräten mit Appium ausführen. Betrachten Sie dieses Beispiel, das für eine native Android-App auf einem Emulator ausgeführt wird:
from appium import webdriver def test_native_android_app(): desired_capabilities = { 'appActivity': 'io.testproject.demo.MainActivity', 'appPackage': 'io.testproject.demo', 'udid': '', 'browserName': '', 'platformName': 'Android', } driver = webdriver.Remote(desired_capabilities=desired_capabilities) driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() driver.quit()
Um die Leistung der TestProject-Plattform auch hier zu nutzen, wir müssen uns nur ändern
from appium import webdriver
Zu:
from src.testproject.sdk.drivers import webdriver
Und wir können loslegen. Der TestProject Agent fungiert auch als Appium-Server, sodass Sie ihn nicht mehr selbst auf dem Computer ausführen müssen, auf dem Ihre Tests ausgeführt werden.
Alle oben beschriebenen Berichtsfunktionen sind auch für Appium-basierte Tests verfügbar.
SDK unterstützt das Ausführen mobiler Tests:
- Für Android sowie iOS.
- Sowohl auf Emulatoren als auch auf realen Geräten.
- Auf nativen Apps sowie mobilen Browsern
Beispiele für all dies finden Sie im SDK-Code-Repository auf GitHub.
Fazit
Wie Sie in diesem Tutorial gesehen haben, kann Ihnen das TestProject Python SDK dabei helfen, Ihre vorhandenen Selenium- und Appium-basierten Tests zu verbessern, indem Sie die Konfiguration Ihrer Browsertreiber und des Appium-Servers überflüssig machen und großartige HTML-Berichte und ein Dashboard für Sie erstellen die TestProject-Plattform.
Das Beste ist, dass das TestProject Python SDK absolut kostenlos ist.
=> Gehen Sie weiter zu Testen Sie das Projekt, um es selbst auszuprobieren !
Über den Autor: Bas Dijkstra
Der Autor lehrt Unternehmen auf der ganzen Welt, wie sie ihre Testbemühungen durch Testautomatisierung verbessern können. Er ist ein unabhängiger Trainer, Berater und Entwickler, der in den Niederlanden lebt. In seiner Freizeit fährt er gerne mit dem Fahrrad, läuft oder liest ein gutes Buch.
Literatur-Empfehlungen
- TestProject Test Automation Tool - Lernprogramm zum praktischen Überprüfen
- Python-Einführungs- und Installationsprozess
- Erstellen Sie Appium-Tests für eine Android-App
- Python-Tutorial für Anfänger (KOSTENLOSES Python-Training zum Anfassen)
- Paralleles Ausführen Ihrer Appium-Tests mit Appium Studio für Eclipse
- Erstellen von Epochentests mit epochs Studio for Eclipse
- Ausführen einer parallelen Ausführung von Appium-Tests in großem Maßstab
- Integrieren Sie sich in Ihre IDE, um Ihre Appium-Tests auszuführen