Frage

Das Unternehmen, für das ich derzeit arbeite, nutzt Selen für das Uniting-Testen unserer Benutzeroberfläche.Was verwenden Sie zum Unit-Testen Ihrer Web-Benutzeroberfläche und wie effektiv finden Sie es?

War es hilfreich?

Lösung

Wir verwenden Watin an meinem Arbeitsplatz, wir sind ein .net-Shop, daher war diese Lösung sehr sinnvoll.Wir haben tatsächlich mit Watir (der ursprünglichen Ruby-Implementierung) begonnen und sind danach umgestiegen.Bisher war es für uns eine ziemlich gute Lösung

Andere Tipps

Ich bin ein großer Fan von Selenium.Die Aussage „Unit-Test Ihrer Web-Benutzeroberfläche“ ist nicht ganz korrekt, wie in einigen Kommentaren erwähnt wurde.Ich finde jedoch, dass Selenium unglaublich nützlich ist, um solche Akzeptanz- und Plausibilitätstests auf der Benutzeroberfläche durchzuführen.

Ein guter Einstieg ist die Verwendung der Selenium IDE als Teil Ihrer Entwicklung.Das heißt, Sie müssen während der Entwicklung einfach die IDE geöffnet haben und Ihren Test unterwegs schreiben, um Ihre Entwicklungszeit zu verkürzen.(Anstatt manuell durch die Benutzeroberfläche gehen zu müssen, um zu dem Punkt zu gelangen, an dem Sie testen können, woran Sie gerade arbeiten, drücken Sie einfach einen Knopf und Selenium IDE erledigt das für Sie.Es ist eine enorme Zeitersparnis!)

Die meisten meiner Hauptanwendungsszenarien verfügen über Selenium RC-Tests, um sie zu untermauern.Man kann sie sich nicht wirklich als Unit-Tests im Sinne eines xUnit-Frameworks vorstellen, aber es handelt sich um Tests, die auf ganz bestimmte Funktionen ausgerichtet sind.Sie sind schnell zu schreiben (insbesondere, wenn Sie gängige Methoden für Dinge wie die Anmeldung oder das Einrichten Ihrer Testfälle implementieren), schnell auszuführen und bieten eine sehr enge Feedbackschleife.In diesem Sinne sind Selenium RC-Tests sehr gut ähnlich zu Unit-Tests.

Ich denke, wie alles andere auch: Wenn Sie sich die Mühe machen, ein Testtool (z. B. Selenium) richtig zu erlernen, wird sich Ihre Mühe in Hülle und Fülle auszahlen.Sie erwähnen, dass Ihr Unternehmen Selenium bereits für UI-Tests verwendet.Das ist toll.Arbeite damit.Wenn Sie Selen als schwierig oder verwirrend empfinden, bleiben Sie dabei.Die Lernkurve ist wirklich nicht mehr so ​​steil, wenn man sich erst einmal ein wenig mit der API vertraut gemacht hat.

Wenn ich an einer Web-App arbeite, schreibe ich selten eine nennenswerte Menge Code ohne Selenium RC-Tests zur Sicherung.So wirksam finde ich Selen.:) (Hoffentlich beantwortet das deine Frage.)

Nun, wenn Sie Ihre Anwendung richtig entworfen haben, wird die Benutzeroberfläche ohnehin nicht über jede Menge Logik verfügen.Es ist viel sinnvoller, die tatsächlich erledigte Arbeit in von der Benutzeroberfläche getrennte Einheiten aufzuteilen und diese dann zu testen.

Wenn Sie dies tun, ist der einzige Code in der Benutzeroberfläche Code, der das Backend aufruft. Daher reicht es aus, das Backend einfach zu testen.

Ich habe NUnit ASP in der Vergangenheit (bei meiner Arbeit) verwendet, und wenn Sie darauf bestehen, Ihre Benutzeroberfläche einem Unit-Test zu unterziehen, würde ich Ihnen dringend raten, ALLES außer NUnit ASP zu verwenden.Es ist mühsam, damit zu arbeiten, und Tests neigen dazu, bereits nach den kleinsten Änderungen an der Benutzeroberfläche ungültig zu werden (und überarbeitet werden zu müssen) (selbst wenn sich die Testthemen eigentlich nicht ändern).

Wir verwenden QuickTestPro.Bisher ist es effektiv, aber die Browserauswahl ist begrenzt.Das Schönste daran ist die Möglichkeit, die Aktivität Ihres Browsers aufzuzeichnen und in eine skriptfähige Reihe von Schritten umzuwandeln.Es gibt auch ein nettes .Net-Add-In. Wenn Sie also Validierungscode für die verschiedenen Phasen Ihres Tests benötigen, können Sie Methoden in eine Assembly schreiben und sie von Ihrem Skript aus aufrufen.

Wir verwenden Visual Studio 2008 Tester Edition.

Vorteile:Sehr gut darin, Benutzerinteraktionen zu erfassen

Erfasst Ajax-Aufrufe

Es ist sehr einfach, Benutzereingaben einer Datenbank, einer XML- oder CSV-Datei zuzuordnen

Der erfasste Test kann für mehr Kontrolle in C# konvertiert werden

Dieselben Tests können für Lasttests und Codeabdeckung verwendet werden

Nachteile:

VS2008 Tester Edition ist eine separate SKU von der normalen Developer Edition, was zusätzliche Kosten bedeutet

Möglicherweise sind Sie allergisch gegen Microsoft ;-)

Wir haben es sehr effektiv in Projekten eingesetzt, allerdings ist es mit großem Aufwand verbunden, die Tests auf dem neuesten Stand zu halten. Jedes Mal, wenn Sie einen Bildschirm ändern, muss der Test möglicherweise neu aufgezeichnet werden

Wir neigen dazu, die Tests kurz und prägnant zu halten, eine Sache zu tun und rauszukommen, anstatt 10 Minuten lang das Herumklicken in einem einzigen Test aufzuzeichnen.

Wir haben einige Standard-UI-Testtypen:

Menütest: Melden Sie sich als bestimmter Benutzer (oder Benutzertyp/Rolle) an und stellen Sie sicher, dass alle erforderlichen Menüelemente verfügbar sind

Validierungstest: Öffnen Sie eine Seite und klicken Sie auf „Speichern“, ohne Daten einzugeben. Stellen Sie sicher, dass alle Validierungswarnungen angezeigt werden.Füllen Sie die erforderlichen Felder nacheinander aus und prüfen Sie, ob die Warnmeldungen zum vorgesehenen Zeitpunkt verschwinden.

Suchtest: Suchen Sie mithilfe von Daten aus Ihrer Datenbank oder einer Datendatei und stellen Sie sicher, dass die Suche die richtigen Daten zurückgibt

Dateneingabetest: Erstellen Sie neue Datensätze aus einer Datendatei und bereinigen Sie die Datenbank, damit Tests mehrmals ausgeführt werden können

UI-Tests sind ziemlich zeitaufwändig, aber das beruhigende Gefühl, wenn man ein paar hundert Tests durchläuft, bevor man eine neue Version veröffentlicht, ist unbezahlbar.

Wir haben verwendet JSunit für eine Weile, um Unit-Tests durchzuführen ...Es handelt sich möglicherweise nicht um die gleichen Tests, von denen Sie sprechen, aber sie eignen sich hervorragend, um sicherzustellen, dass Ihr JavaScript wie erwartet funktioniert.

Sie führen es im Browser aus und es kann in einem Ant-Build so eingestellt werden, dass es automatisch remote für eine Reihe von Browsern auf einer Reihe von Plattformen ausgeführt wird (so können Sie sicherstellen, dass Ihr Code browserübergreifend ist und dass die Logik korrekt ist ).

Ich glaube nicht, dass es Selen ersetzt, aber es ergänzt es gut.

Wir verwenden Selenium Core, wechseln aber nach und nach zu Selenium RC, was viel schöner und einfacher zu verwalten ist.Wir haben viel benutzerdefinierten Code geschrieben, um die Tests auf unseren Continuous Integration-Servern laufen zu lassen, einige davon in parallelen Suiten, um die Ausführung zu beschleunigen.

Eine Sache, die Sie feststellen werden, ist, dass Selenium den Browser bei jedem Test neu zu starten scheint (Sie können festlegen, dass dies nicht geschieht, aber wir hatten dabei Speicherprobleme).Das kann in Firefox langsam sein, ist aber im IE nicht so schlimm (einmal bin ich dankbar für die OS-Integration von Bill Gates).

Ich habe verwendet WATIR, was ziemlich gut ist.Mir gefiel es, weil es Ruby ist und das Testen der Interaktivität, der verfügbaren Elemente und des Parsens des Quellcodes ermöglicht.Ich habe es eine Weile nicht benutzt, gehe aber davon aus, dass es besser geworden ist.

Es wird angeblich auf Firefox und Safari portiert, aber das geschieht schon seit einiger Zeit.

Kasse Canoo Web-Test.Es ist Open Source und basiert auf dem ANT-Framework.

Ich habe einige Zeit damit verbracht, im Rahmen eines Graduiertenkurses über Software-Qualitätssicherung damit zu arbeiten, und es scheint ein ziemlich leistungsfähiges Testtool zu sein.

Selengitter können Ihre Webtests auf mehreren Computern parallel ausführen, was den Webtestprozess beschleunigen kann

Ich benutze meistens KubischerTest, ein Eclipse-Plugin, mit dem Sie Tests grafisch definieren können.Es kann Tests über mehrere Bibliotheken exportieren/ausführen, darunter Watir und Selenium.Die meisten Leute verwenden jedoch einfach den Selenium-Läufer.

Vollständige Offenlegung:Ich bin einer der Entwickler, also bin ich irgendwie voreingenommen :)

Schauen Sie hier genauer hin: kubischer Test.openqa.org

-Erlend

Selenium ist für Integrationstests gedacht, nicht für Unit-Tests.Es ist ein subtiler, aber wichtiger Unterschied.Die Verwendung, die ich normalerweise sehe, ist die Überprüfung der Plausibilität eines Builds.Das heißt, es gibt einen Test, der sich anmeldet, einen Test, der (zum Beispiel) eine Geschichte einreicht, einen Kommentar abgibt usw.

Die Idee besteht darin, dass Sie vor der Bereitstellung testen, ob das gesamte System zusammenarbeitet, anstatt dass ein Benutzer feststellt, dass Ihre Website defekt ist.

Wir verwenden derzeit Silk4J – ein Java-zentrierter Ansatz zum Testen der Web-Benutzeroberfläche.Es kann Flash, Flex, AIR, Silver Light, Win32, HTML und einige andere Anwendungen testen.

Da Silk4J Win32-Apps steuern kann, kann es Browserdialoge direkt steuern, was einen Schritt über dem liegt, was Selenium steuern kann, und besonders nützlich für Download-Eingabeaufforderungen ist.

Wir gebrauchen WatiN für Systemtests und QUnit für JavaScript-Unit-Tests.

Molybdän ist auf Selenium aufgebaut und verfügt über einige zusätzliche Funktionen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top