Selenium

Puppenspieler VS Selenium

Puppenspieler VS Selenium
Wenn es um automatisierte Webtests geht, sind Puppeteer und Selenium heute die beiden Namen, die auftauchen. Einer der Hauptgründe, warum sie so bekannt sind, ist ihre Fähigkeit, kopflose Browser auszuführen. Bevor wir mit dem Artikel fortfahren, schauen wir uns daher kurz an, was Headless-Browser sind und welche Vorteile sie haben.

Im Grunde sind Headless-Browser Browser, die zum Testen der Benutzerfreundlichkeit von Webseiten und zum Ausführen von Browserinteraktionen verwendet werden können, genau wie Sie es mit Ihrem normalen Browser tun würden. Der einzige Unterschied besteht darin, dass es keine grafische Benutzeroberfläche (GUI) gibt und sie normalerweise vom Terminal aus ausgeführt werden.

Headless-Browser:

Nachdem wir nun einen wesentlichen Faktor für beide Tools kennen, können wir fortfahren.

Puppenspieler

Puppeteer ist eine Node-Bibliothek von Google, die eine einfache API zur Steuerung von Headless Chrome bietet. Durch Puppeteer können gängige Aufgaben wie das Eintippen von Eingaben, das Klicken auf Schaltflächen, das Testen der Benutzerfreundlichkeit von Webseiten und sogar das Web-Scraping einfach durchgeführt werden.

Puppeteer ist offiziell vom Chrome-Team und verwendet das Chrome Remote Debug Protocol, genau wie wir es bei den Chrome Devtools finden würden. Diese Bibliothek unterstützt die moderne JavaScript-Syntax, die in Google Chrome verfügbar ist.

Einrichten

Die Installation und der Einstieg in Puppeteer ist sehr einfach. Da Puppeteer eine Node-Bibliothek ist, kann sie mit dem installiert werden npm Werkzeug.

Die Installation kann mit dem folgenden Befehl durchgeführt werden:

npm ich puppenspieler

Das Ausführen des obigen Befehls installiert Puppeteer. Es wird erwartet, dass auch eine aktuelle Version von Chromium heruntergeladen wird, die mit der API funktioniert.

Die Größe von Chromium variiert je nach Betriebssystem:

Nach der Installation von Puppeteer finden Sie weitere Informationen zu den ersten Schritten sowie weitere Codebeispiele.

Eigenschaften

Die Fähigkeit von Puppeteer, einen kopflosen Browser zu starten, ist zwar ein Feature, das ihm einige Berühmtheit eingebracht hat, aber das ist nicht das einzige Feature, das es großartig macht. Puppeteer hat auch ein paar andere Funktionen, die es nützlich machen, werfen wir einen kurzen Blick auf einige davon.

Einfache Automatisierung:

Während es andere Tools gibt, die für die Webautomatisierung verwendet werden können, schneidet Puppeteer an der Spitze ab. Dies liegt daran, dass es nur für einen Browser, den Headless Chrome-Browser, gut funktioniert und daher Web-Automatisierungsaufgaben so effizient wie möglich ausführt. Puppeteer funktioniert auch gut mit beliebten Unit-Testing-Bibliotheken wie Mocha und Jasmine.

Screenshot-Test:

Dies ist eine wichtige Funktion für jede automatisierte Webtestaufgabe. Screenshots sind wichtig und helfen, das Ergebnis von Interaktionen mit Elementen auf einer Webseite zu verfolgen. In Puppeteer gibt es auch Bibliotheken wie Puppeteer-screenshot-tester, die die Möglichkeit bieten, Screenshots zu vergleichen, die während des Tests generiert wurden. Neben der Erstellung von Screenshots von Tests können in Puppenspieler auch PDFs von getesteten Webseiten generiert werden.

Leistungstest:

Chrome bietet DevTools, die das Aufzeichnen der Performance-Timeline von Webseiten ermöglichen, und Puppeteer nutzt dies auch aus. Mit Puppeteer können Zeitleistenspuren von Websites erfasst werden, um Leistungsprobleme zu untersuchen. Aufgrund der hochrangigen API-Steuerung von Puppeteer über das Chrome Developers Tools Protocol gibt es Benutzern die Möglichkeit, Servicemitarbeiter zu kontrollieren und das Caching von Websites zu testen test.

Web-Scraping:

Ein Gespräch über Funktionen wäre nicht abgeschlossen, ohne die Fähigkeit von Puppeteer für Web-Scraping-Zwecke anzuerkennen. Puppeteer als Web Scraper zu erlernen ist ganz einfach, werfen Sie einen Blick in die API-Dokumentation.

Vorteile

  1. Funktioniert gut für visuelle Tests.
  2. Ideal für End-to-End-Tests.
  3. Schnell im Vergleich zu Selen.
  4. Kann Screenshots von Webseiten machen.
  5. Mehr Kontrolle über Tests durch Chrome.
  6. Kann Offline-Modus testen test.

Nachteile

  1. Unterstützt nur JavaScript (Knoten)
  2. Unterstützt nur Chrome

Selen

Selenium ist ein leistungsstarkes Webtest-Framework, das die Möglichkeit bietet, Webanwendungen zu Testzwecken zu automatisieren. Selenium ist auch für seine Fähigkeit bekannt, webbasierte Verwaltungsaufgaben zu automatisieren.

Selen kommt in zwei Teilen; den Selenium WebDriver zum Erstellen leistungsstarker, browserbasierter Automatisierungssuiten und Tests und die Selenium IDE zum Erstellen von schnellen Skripten zur Fehlerreproduktion.

Nicht zu vergessen, dass Selenium auch Headless-Browser wie bei Puppeteer unterstütztte.

Einrichten

Anders als bei Puppeteer ist die Einrichtung von Selenium nicht einfach. Selenium unterstützt viele Sprachen und verschiedene Browser, daher müssen diese möglichen Bedingungen berücksichtigt werden.

Nachfolgend finden Sie Links zu offiziellen Tutorials zum Einrichten von Selenium-Bindungen für verschiedene Sprachen.

Selenium unterstützt nicht nur verschiedene Sprachen, sondern auch mehrere Browser. Im Gegensatz zu Puppeteer, das Chromium während der Installation installiert, müssen Sie möglicherweise Webtreiber für den Webbrowser Ihrer Wahl installieren.

Hier sind Links zu Webtreibern für Mozilla Firefox und Google Chrome.

Wenn Sie auch die Selenium-IDE verwenden möchten, gibt es sie auch für mehrere Browser. Hier sind Links zur Selenium IDE für Mozilla Firefox und Google Chrome.

Eigenschaften

Seine Fähigkeit, mit Headless-Browsern zu arbeiten, hat es unbestreitbar zum beliebtesten Web-Automatisierungstool gemacht, aber es gibt noch andere Funktionen, die es leistungsstark machen.

Mehrsprachige Unterstützung:

Dies ist eine sehr wichtige Selenium-Funktion. Dank der Unterstützung mehrerer Sprachen können mehr Entwickler das Tool für ihre Testaufgaben zur Webautomatisierung verwenden.  Obwohl man meinen könnte, dass die Mehrsprachenunterstützung es langsam machen würde, läuft Selenium immer noch mit einer guten Geschwindigkeit, da das Starten eines Servers im Web Driver nicht erforderlich ist.

Multi-Plattform-Unterstützung:

So wie Selenium nicht durch Sprachbarrieren eingeschränkt wird, wird es auch nicht durch Plattformbarrieren eingeschränkt. Es ist keine Neuigkeit, dass sich Webanwendungen auf mehreren Plattformen unterschiedlich verhalten. Selenium bietet Testern die Möglichkeit, in allen gängigen Webbrowsern zu testen, um eine reibungslose Benutzererfahrung für Benutzer in verschiedenen Browsern zu bieten.  Abgesehen von Browsern kann Selenium auch zum Testen auf Mobilgeräten wie Android-, iOS-, Windows- und Blackberry-Apps verwendet werden.

Aufnahmetool:

Mit Selenium IDE ist es einfach, Web-Automatisierungstests aufzuzeichnen. Selenium IDE ermöglicht es Testern, die Aufnahmefunktion sowie die Unterstützung für die automatische Vervollständigung und die Möglichkeit zum Navigieren von Befehlen zu nutzen. Das Aufnahme-Tool funktioniert unter Firefox 55 und späteren Versionen nicht mehr, es gibt jedoch andere Plugins in Firefox, die den gleichen Zweck erfüllen. Daher bleibt die Möglichkeit, Tests aufzuzeichnen, ein wichtiges Selenium-Feature.

Web-Scraping:

Selenium wird zwar zum Testen von Webanwendungen verwendet, skaliert aber auch gut als Web Scraper. Selenium kann zum Scrapen von AJAX-Websites und den am schwierigsten zu Scraping-Websites verwendet werden, vorausgesetzt, Sie können die HTML-Struktur verstehen. Sie können sich dieses Tutorial zur Verwendung von Selenium für Web-Scraping mit Python ansehen.

Vorteile

  1. Unterstützung für mehrere Plattformen.
  2. Mehrsprachige Unterstützung.
  3. Möglichkeit, Tests aufzuzeichnen.
  4. Kann auch Screenshots machen.
  5. Riesige Nutzer-Community.

Nachteile

  1. Langsam im Vergleich zu Puppenspieler.
  2. Begrenzte Kontrolle über Tests im Vergleich zu Puppeteer.

Fazit

Wenn Sie sich nicht darum kümmern, Webseiten auf anderen Plattformen als Chrome zu testen, dann können Sie mit Puppeteer gut arbeiten, vorausgesetzt, Sie können mit JavaScript (Node) arbeiten. Wenn Sie sich jedoch Sorgen über mehrere Plattformen machen, ist die Verwendung von Selenium ein Kinderspiel. Apropos Web-Scraping-Fähigkeiten, beide Tools sind sogar selbst da draußen. Es sollte jedoch beachtet werden, dass Puppeteer schneller sein könnte als Selenium.

Jedes Tool, das Sie am Ende des Tages wählen, sollte in Ordnung sein, genießen Sie es einfach, Ihre Automatisierungsskripte zu schreiben.

So verwenden Sie AutoKey zur Automatisierung von Linux-Spielen
AutoKey ist ein Desktop-Automatisierungsdienstprogramm für Linux und X11, programmiert in Python 3, GTK und Qt. Mithilfe der Skript- und MACRO-Funktio...
So zeigen Sie den FPS-Zähler in Linux-Spielen an
Linux-Gaming bekam einen großen Schub, als Valve 2012 die Linux-Unterstützung für den Steam-Client und seine Spiele ankündigte. Seitdem haben viele AA...
Herunterladen und Spielen von Sid Meier's Civilization VI unter Linux and
Einführung in das Spiel Civilization 6 ist eine moderne Version des klassischen Konzepts, das in der Reihe der Age of Empires-Spiele eingeführt wurde....