Getestet mit:RPi3; Raspbian Stretch; Python3
Voraussetzungen:Raspberry Pi mit Raspbian Jessie und Internetverbindung (siehe Schritte 1-7 in der Einfuehrung)
0

Python3: BrowserTests auf dem Raspberry Pi mit Firefox, Virtualdisplay, Selenium und PyTest

Eine moderne Website ist mehr als nur HTML plus Inhalte. ContentManagementSysteme (CMS) nutzen eine Vielzahl komplexer Technologien wie unter anderen JavaScript, MySQL, CSS, PHP und Python. Dabei sinkt die Wartbarkeit groesserer Seiten. Dem kann man mit Browsertests entgegenwirken, bei denen die Website-Interaktionen simuliert und auf Funktionalitaet ueberprueft werden. Um den eigenen Rechner nicht mit unnoetigen Prozessen zu belasten, koennen die Teils sehr zeitaufwendigen Browsertests mit Firefox, Selenium und PyTest auf einen Raspberry Pi ausgelagert werden. Dank Virtualdisplay benoetigt dieser noch nicht einmal einen Bildschirm (Headless).

Installation
Installiere zuerst die benoetigten Komponenten mit

Dann ist noch der Gecko-Treiber fuer Arm7 zu installieren:

DuckDuckGo Browsertest
Zur Demonstration ein kleiner Browsertest zur Validierung der Suchmaschine DuckDuckGo.
Downloade zuerst das Testscript von Github:

Stelle sicher, dass keine Apache-Instanz laeuft durch die Eingabe von

Starte dann das Script mit

Das Script laedt die Seite duckduckgo.com, gibt den Titel eines Tutorials in der Suchleiste ein und gibt eine Exception aus, wenn es keinen Treffer auf Knight of Pi gibt.
Wirf einen Blick auf Techbeamer fuer mehr Infos zu Browsertests mit Selenium in Python.

Code Details
Hiermit wird zuerst ein virtuelles Display und dann ein Treiber mit einem Profil des Raspi-kompatiblem Browsers Firefox erzeugt:

Mit dem Treiber wird die Homepage von DuckDuckGo geladen. Anschliessend wird das Suchzeilenelement gesucht und die Suche mit dem Titel eines Tutorials gestartet.

Jetzt werden die Ergebnisse gesammelt. Mit assert ... wird sichergestellt, dass mindestens ein Treffer fuer Knight of Pi gefunden wurde.

Browsertests im lokalen Netzwerk
Browsertests koennen entweder im Internet oder im lokalen Netzwerk ausgefuehrt werden. Um Browsertests lokal auf einem Raspberry Pi ausfuehren zu koennen, muss unter anderem ein Server wie beispielsweise Apache installiert werden. Das Tutorial Lokaler Klon eines WordPress-Blogs zeigt, wie ein lokaler Server auf dem Raspberry Pi installiert wird.
Fuer lokale Browsertests muss dann im Script browser_test.py die Zeile

ersetzt werden durch

Der im Code folgende, fuer DuckDuckGo entworfene Test scheitert natuerlich.

Gesamtes Script
Klicke auf Ganzes Script um das ganze Programm anzuzeigen.

Links
Lokaler Klon eines WordPress-Blogs mit Duplicator: http://www.knight-of-pi.org/de/wordpress-blog-lokal-auf-einem-raspberry-pi-mit-wp-duplicator/
Techbeamer Selenium Python Browsertests: http://www.techbeamers.com/selenium-webdriver-python-tutorial/
Software Test Setup: http://www.knight-of-pi.org/de/python-projekt-test_driven_development/
Selenium Website: http://docs.seleniumhq.org

Knight of Pi

Johannes Bergs aka Knight of Pi. Diploma in Bioinformatics, some Webdesign and Python coding then. Living in the beautiful city of Vienna.

Kommentar

Time limit is exhausted. Please reload CAPTCHA.