Wie zuverlässig ist HtmlUnitDriver?

8

Offensichtlich hängt die Antwort auf die Frage von einer Reihe von Umweltfaktoren ab.

In allgemein frage ich mich, welche Erfahrungen die Leute mit HtmlUnitDriver als ein zuverlässiges Werkzeug, das "vertraut" werden kann, um eine Website im Grunde zu navigieren, genauso wie andere Browser es tun.

Natürlich ist mir klar, "wie andere Browser das tun" ist ziemlich nebelhaft; Natürlich wird jeder Browser seine Macken haben. Aber ich bin bei einem Projekt, bei dem es Hunderte von Akzeptanztest-Szenarien gibt (geschrieben in JBehave ) und mit FirefoxDriver und InternetExplorerDriver < Es dauert mehr als zwei Stunden, um alle von ihnen zu laufen, was vom Standpunkt der kontinuierlichen Integration aus gesehen ziemlich grob ist. Ich frage mich, ob es zumindest durchführbar ist , dass wir unsere Akzeptanztests auf HtmlUnitDriver umstellen könnten und viel schnellere Zeiten mit meist demselben Verhalten erwarten (und vielleicht auch wir könnten erwarten, dass eine Handvoll von Tests fehlschlägt, indem wir HtmlUnitDriver verwenden und diese Tests speziell mit einem browserbasierten Treiber ausführen.

Unsere Benutzeroberfläche verwendet GWT , was die Dinge möglicherweise komplizierter macht (ich weiß es nicht).

Grundsätzlich funktioniert HtmlUnitDriver in der Erfahrung anderer genauso gut wie ein anderer Browser, oder ist es wirklich nur für sehr einfache HTML-Websites mit minimalem JavaScript geeignet und sollte nicht für eine Unternehmens-Webanwendung verwendet werden?

>     
Dan Tao 17.03.2011, 23:21
quelle

1 Antwort

8

Aus meinen Erfahrungen mit der Verwendung von HtmlUnitDriver würde ich sagen, dass wenn Sie es nicht als Baseline-Browser verwenden, wenn Sie Ihre Tests schreiben, dann wird die Konvertierung zu einem Albtraum. Dies gilt vor allem, wenn es um schwere Websites javascript geht.

Der Hauptgrund dafür ist die offensichtlich zugrunde liegende Verwendung von htmlunit, die standardmäßig die Rhino-JavaScript-Engine verwendet. In der Vergangenheit musste ich immer angeben, dass HtmlUnitDriver htmlunit mit der JavaScript-Engine von Firefox startet. Dies löste die Javascriptprobleme, die ich beim Ausführen von Tests mit HtmlUnitDriver fand, zum größten Teil.

Eines der größten Probleme bei der Verwendung desselben Testcodes für jeden Browser bestand darin, dass die UI-Entwickler auf der zu testenden Website Javascript-Ereignisse wie onClick() HTML-Elementen wie zB% zugewiesen hatten. co_de%.

Der Grund dafür ist, dass wenn Sie die <span> -Methode von WebDriver für ein WebElement verwenden, das .click() repräsentiert, dann würde htmlunit nichts tun (es erwartet, dass <span> für Elemente wie% aufgerufen wird). Code%). Um das zu umgehen, musste ich manuell ein onClick() Event in Javascript aufrufen. Sie können dies tun, entweder mit WebDriver's JavascriptExecutor oder mit einem WebDriverBackedSelenium und Selenium <input> .

Wenn Ihre Website solche Ereignisse verwendet, würde ich sagen, dass die Umstellung auf HtmlUnitDriver eine große Aufgabe sein könnte.

Trotzdem verwende ich HtmlUnitDriver für alle meine Tests. Ich habe jedoch die Mühe gemacht, all diese Dinge vor einiger Zeit zu entdecken, also benutze jetzt HtmlUnitDriver als meinen Basis-Browser, wenn ich Tests schreibe.

    
bmaher 27.03.2011, 18:53
quelle