Kopfloses Testen in einem Browser. Vorteile und Nachteile

Hallo nochmal. Diese Veröffentlichung ist dem Start des Kurses zur Automatisierung von Webtests gewidmet , der diese Woche beginnt. Viel Spaß beim Lesen!

Was ist kopfloses Testen?

Beim kopflosen Testen wird im Browser ein Test für die Leistung von Komponenten der Benutzeroberfläche gestartet, ohne dass diese Benutzeroberfläche selbst angezeigt wird. Solche Tests starten Skripte im Browser, werden jedoch nicht gestartet und zeigen die Benutzeroberfläche nicht selbst an.



Warum müssen Sie möglicherweise Headless-Browser verwenden? Dieser Ansatz hat viele Vor- und Nachteile. Die Verwendung eines Headless-Browsers ist möglicherweise nicht sehr nützlich, um im Internet zu surfen, ist jedoch für die Automatisierung von Aufgaben und Tests unverzichtbar.

Warum einen kopflosen Browser verwenden?

Dem Geld zu folgen ist ein Klischee, aber ich denke immer noch, dass dies ein Schlüsselindikator für die Entstehung von Trends ist und daher, worauf Sie unbedingt achten sollten. Zum Beispiel hat Sauce Labs gerade einen neuen Dienst namens Sauce Headless veröffentlicht, eine Cloud-basierte Lösung zum kopflosen Testen Ihrer Lösungen.

Ich weiß, dass die Leute in Sause kluge Leute sind. Sie werden nichts für nichts entwickeln. Sie müssen Feedback von Benutzern erhalten, um zu verstehen, dass alle Funktionen erforderlich sind.

Ich bin sicher, dass sie nicht allein sein werden, um kopflose Tests zu entwickeln.
Während wir uns weiter durch den Lebenszyklus der Softwareentwicklung bewegen, müssen Tester Entwicklern immer schneller Feedback geben. Eine Möglichkeit, dies zu erreichen, besteht darin, schnelle Überprüfungen mit einem kopflosen Browser durchzuführen.

Automatisierung in der Softwareentwicklung

Ich bin für die Automatisierung mit allen Händen, aber bei der Automatisierung geht es nicht nur ums Testen.
Dies ist eine Geschichte über alle Aspekte, die Sie automatisieren können, um Zeit oder Mühe im Lebenszyklus von Softwareentwicklung, Qualitätskontrolle oder -tests, DevOps oder Installation zu sparen. Headless Browser sind eines der leistungsstarken Automatisierungstools.

Headless-Browser sind schneller als normale Browser

Einer der wichtigsten Unterschiede zwischen Headless-Browsern und normalen Browsern ist ihre Geschwindigkeit. Tatsache ist, dass beim Laden einer Seite in einem Browser ohne GUI keine Zeit mit dem Laden von CSS, JavaScript und dem Rendern von HTML verschwendet werden muss.

Ich würde nicht sagen, dass der Unterschied enorm sein wird, aber in einigen Fällen können Sie den Geschwindigkeitsanstieg um die Hälfte oder sogar 15 verfolgen. Wenn Ihnen also die Leistung wichtig ist, ist ein kopfloser Browser eine gute Wahl.

Scraping mit einem kopflosen Browser

Ein weiterer Vorteil von Headless-Browsern ist ihre Fähigkeit, Daten von Websites zu sammeln. Dazu müssen Sie den Browser nicht manuell starten. Sie können Headless-Technologie verwenden, um HTML einfach zu verschrotten. Das Rendern des gesamten Browsers ist völlig optional.

Angenommen, Ihr Fall erfordert Sportstatistiken oder Preisvergleiche auf verschiedenen Websites.

Da Sie nur Daten benötigen, ist es nicht sinnvoll, eine vollwertige Browser-Essenz zu starten und den Computer unnötig zu laden. Je weniger geladen, desto schneller erhalten Sie das Ergebnis. Es muss nicht unbedingt ein Test sein, Sie müssen nur das richtige Werkzeug verwenden, um zu arbeiten. Im Allgemeinen glaube ich, dass Tester vergebliche kopflose Browser auf ihrem Gebiet vergeblich unterschätzen.

Wenn Sie also Daten von einer Webseite abrufen müssen, müssen Sie diese nicht öffnen und durch Öffnen eines Browsers zusätzliche Last erzeugen. Alle erforderlichen Funktionen können einen kopflosen Browser bereitstellen.

Sparen Sie Entwicklerzeit

Ich weiß, dass viele Entwickler kopflose Browser verwenden, um ihre Websites und Anwendungen zu testen. Die Möglichkeit, es über die Befehlszeile zu verwenden, ohne den Browser manuell zu aktualisieren oder zu starten, spart ihnen viel Zeit und Mühe. Zum Beispiel erklärte Rob Frizzel , der Autor von PhantomJS CookBook, in einem Interview mit TestTalks , warum seine Entwickler den kopflosen Browser PhantomJS verwenden:
„Obwohl PhantomJS selbst kein Test-Framework ist, ist es ein nützlicher„ Lichtstrahl in einer Kohlenmine “, der Vertrauen gibt. Wenn alle Tests bestanden sind, werden Sie viel sicherer, dass Ihr Code wirklich gut ist. “
Leistungsüberwachung mit Headless-Browser-Skripten

Eine weitere Option für die Verwendung eines Headless-Browsers ist die Überwachung der Leistung von Netzwerkanwendungen.

Einige verwenden sie sogar, um das Rendern zu automatisieren und Screenshots des Bildschirms einer Website zu erstellen, um Layouts in einem automatisierten Stil zu testen.

Ich denke, dies ist einer der Gründe, warum Google eine neue kopflose Chrome-API namens Puppeteer entwickelt hat . Es soll in erster Linie Entwicklern helfen.

Schlüsselideen Headless Browser Testing

Neben der vorherigen Idee gibt es auch andere Optionen für die Verwendung von Headless-Browsern, über die ich Ihnen jetzt berichten werde:

  1. Führen Sie Tests auf einer Maschine ohne Monitor durch.
  2. Dateneinstellung;
  3. SSL-Tests;
  4. Simulation mehrerer Browser auf einem Computer;
  5. Ausführen von Tests auf einem Headless-System wie Linux ohne GUI;
  6. Empfang und Visualisierung von PDF-Dateien;
  7. Markup-Tests, da kopflose Browser HTML und CSS als vollwertige Browser rendern können, sodass Sie sie mit Stilen testen können.

Fälle, in denen Sie keinen kopflosen Browser verwenden möchten

Natürlich gibt es Zeiten, in denen Sie möglicherweise einen vollständigen Browser anstelle eines Headless-Browsers verwenden möchten. Zum Beispiel:

  1. Sie müssen echte Benutzer simulieren.
  2. Sie müssen sehen, wie der Test funktioniert.
  3. Wenn Sie debuggen müssen, kann dies mit einem Headless-Browser schwierig sein.

Beliebte kopflose Browser

  1. Google Puppeteer - Headless Browser Puppeteer ist eine Knotenbibliothek. Es bietet eine allgemeine API zur Steuerung von kopflosem Chrome oder Chromium mithilfe des DevTools-Protokolls. Es kann auch für die Verwendung von vollwertigem (nicht kopflosem) Chrom oder Chrom konfiguriert werden.
  2. Google Chrome ab Version 59;
  3. Firefox-Versionen 55 und 56;
  4. PhantomJS - Headless Webkit auf JavaScript API. Es bietet schnelle und native Unterstützung für verschiedene Webstandards: DOM-Baumverarbeitung, CSS-Selektoren, JSON-, Canvas- und SVG-Format. * Jetzt wird es nicht unterstützt. Aus diesem Grund möchten Sie es möglicherweise nicht verwenden.
  5. HtmlUnit ist ein Browser ohne GUI für Java-Code. Es modelliert HTML-Dokumente und bietet eine API, mit der Sie Seiten öffnen, Formulare ausfüllen, auf Links klicken usw. können. Sowie in Ihrem "normalen" Browser.
  6. Splinter - Splinter ist ein kopfloser Python-orientierter Browser. Es ist Open Source und wird zum Testen von Webanwendungen mit Python verwendet. Sie können es beispielsweise verwenden, um Browseraktionen zu automatisieren, z. B. den Besuch von Webseiten und die Interaktion mit ihren Elementen.
  7. jBrowserDriver - Ein programmierbarer, eingebetteter Webbrowsertreiber, der mit der Selenium WebDriver-Spezifikation kompatibel ist - ohne Kopf, basierend auf WebKit, in reinem Java.

Wann sollten Sie zum Testen einen Headless-Browser verwenden?

Die Antwort auf diese Frage hängt vom Zweck Ihrer Tests ab.

Einerseits sagen die Leute oft: „Verwenden Sie niemals kopflose Browser. Ein echter Benutzer wird es niemals benutzen. Warum sollten Sie es also tun? “ Auf der anderen Seite hören wir jedoch: „Sie sollten immer einen kopflosen Browser verwenden, da dieser schneller ist und beim Testen schneller bedeutet, dass er besser ist.“

Wie wir wissen, wird jede Position Unterstützer und Opposition haben, aber hier geht es nur darum, die richtigen Werkzeuge auszuwählen, um bestimmte Probleme zu lösen.

Denken Sie daran, dass Sie das optimale Werkzeug für den Job verwenden und sich immer fragen sollten, wie sich dies auf den Endbenutzer auswirkt. Sie sollten sich jedes Mal fragen, was der Zweck des Testens ist, wenn Sie zwischen diesen beiden Gesichtspunkten wählen.

Nach der etablierten Tradition warten wir auf Ihre Kommentare und erinnern uns auch daran, dass es in wenigen Stunden einen Tag der offenen Tür geben wird , an dem Sie sich ausführlich über unseren Kurs informieren können.

Source: https://habr.com/ru/post/de444248/


All Articles