2008-08-11 5 views

Antwort

9

Wir verwenden Watin an meinem Arbeitsplatz, wir sind ein .net-Shop, so dass diese Lösung sehr sinnvoll war. Wir haben eigentlich mit Watir (der ursprünglichen Rubin-Implementierung) begonnen und sind danach gewechselt. Es war bisher eine ziemlich gute Lösung für uns

2

Wir verwenden Selenium Core, wechseln aber nach und nach zu Selenium RC, das viel netter und einfacher zu handhaben ist. Wir haben viel benutzerdefinierten Code geschrieben, um die Tests auf unseren Continuous Integration Servern laufen zu lassen, einige von ihnen in parallelen Suites, um schneller zu laufen.

Eine Sache, die Sie finden, ist, dass Selenium scheint, den Browser für jeden Test neu zu starten (Sie können es einstellen, um dies nicht zu tun, aber wir haben Gedächtnisprobleme, als wir das taten). Das kann in Firefox langsam sein, ist aber im IE nicht so schlecht (einmal bin ich dankbar für die OS-Integration von Bill Gates).

3

Wir verwenden QuickTestPro. Bis jetzt ist es effektiv, aber die Browserauswahl ist begrenzt. Der schönste Teil ist die Möglichkeit, die Aktivität Ihres Browsers aufzuzeichnen und in eine skriptfähige Menge von Schritten zu konvertieren. Es gibt auch ein nettes .Net-Add-In. Wenn Sie einen Validierungscode für die verschiedenen Phasen Ihres Tests haben, können Sie Methoden in eine Assembly schreiben und sie von Ihrem Skript aus aufrufen.

5

Nun, wenn Sie Ihre Anwendung richtig entwickelt haben, werden Sie in der UI sowieso nicht viel Logik haben. Es macht viel mehr Sinn, die tatsächlich geleistete Arbeit in separate Einheiten von der Benutzeroberfläche zu trennen und diese dann zu testen.

Wenn Sie das tun, dann ist der einzige Code in der Benutzeroberfläche Code, der das Backend aufruft, also genügt es, das Backend zu testen.

Ich habe NUnit ASP in der Vergangenheit (bei meiner Arbeit) verwendet, und wenn Sie darauf bestehen Unit-Test Ihre Benutzeroberfläche, würde ich Ihnen dringend empfehlen, alles zu verwenden, außer NUnit ASP. Es ist mühsam, damit zu arbeiten, und Tests neigen dazu, selbst nach den geringfügigen UI-Änderungen ungültig zu werden (müssen überarbeitet werden) (selbst wenn sich die Themen der Tests nicht wirklich ändern).

3

Wir verwenden JSunit eine Zeit lang, um Komponententests zu machen ... es sind vielleicht nicht die gleichen Arten von Tests, über die Sie sprechen, aber es ist großartig, um sicherzustellen, dass Ihr JavaScript so funktioniert, wie Sie es erwarten.

Sie führen es im Browser, und es kann in einem Ant-Build festgelegt werden, um automatisch gegen eine Reihe von Browsern auf einer Reihe von Plattformen aus der Ferne ausgeführt werden (so können Sie sicherstellen, dass Ihr Code browserübergreifend ist und sicherstellen die Logik ist richtig).

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

2

Ich habe WATIR verwendet, was ziemlich gut ist. Ich mochte es, weil es Ruby ist und Interaktivität, verfügbare Elemente und Quellcode-Parsing testen kann. Ich habe es eine Weile nicht benutzt, aber ich nehme an, es ist besser geworden.

Es wird angeblich zu Firefox und Safari portiert, aber das ist schon seit einer Weile passiert.

2

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

Ich verbrachte einige Zeit damit, für einen Graduiertenkurs über Software-QA zu arbeiten und es scheint ein ziemlich leistungsfähiges Testwerkzeug zu sein.

2

Selenium Grid können Ihre Web-Tests auf mehreren Rechnern parallel laufen, die den Prozess Web Test beschleunigen kann

2

ich meistens CubicTest verwenden, die ein Eclipse-Plugin, das Sie Tests grafisch definieren lässt. Es kann Tests über mehrere Bibliotheken, einschließlich watir und selen, exportieren/ausführen. Die meisten Leute benutzen nur den Selenium-Läufer.

Vollständige Offenlegung: Ich bin einer der Entwickler, so dass ich bin ein bisschen voreingenommen :)

eine nähere hier betrachten: cubictest.openqa.org

-Erlend

1

Selen ist für Integrationstests , nicht Unit-Tests. Es ist ein subtiler, aber wichtiger Unterschied. Die Verwendung, die ich normalerweise sehe, ist die Überprüfung eines Builds. dh, Sie haben einen Test, der sich anmeldet, einen Test, der (beispielsweise) eine Geschichte einreicht, einen Kommentar abgibt usw.

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

16

Ich bin ein großer Fan von Selen. "Unit-testing your web ui" zu sagen ist nicht genau, wie einige der Kommentare erwähnt haben. Ich finde jedoch, dass Selenium sehr nützlich für die Durchführung solcher Akzeptanz- und Vernunfttests auf der Benutzeroberfläche ist.

Ein guter Einstieg ist die Verwendung von Selenium IDE als Teil Ihrer Entwicklung. Dh, lassen Sie einfach die IDE während der Entwicklung offen und schreiben Sie Ihren Test, während Sie Ihre Entwicklungszeit reduzieren. (Anstatt die Benutzeroberfläche manuell zu durchlaufen, um zu dem Punkt zu kommen, an dem Sie testen können, was Sie gerade arbeiten, drücken Sie einfach eine Taste und Selenium IDE wird sich darum kümmern. Es ist eine großartige Zeitersparnis!)

Die meisten meiner wichtigsten Anwendungsfälle haben Selenium RC-Tests, um sie zu unterstützen. Man kann sie nicht wirklich als Komponententests im Sinne eines xUnit-Frameworks bezeichnen, sondern sie sind Tests, die auf sehr spezifische Funktionen abzielen. Sie schreiben schnell (vor allem, wenn Sie gängige Methoden für das Anmelden oder Einrichten von Testfällen implementieren), sind schnell zu verwenden und bieten eine sehr enge Feedback-Schleife. In diesem Sinne sind Selen-RC-Tests sehr ähnlich zu Unit-Tests.

Ich denke, wie alles andere auch, wenn Sie sich die Mühe machen, ein Test-Tool (zB Selenium) richtig zu lernen, wird sich Ihre Mühe in Pik auszahlen. Sie erwähnen, dass Ihre Firma bereits Selenium für UI-Tests verwendet. Das ist toll. Arbeite damit. Wenn Sie feststellen, dass Selen schwer zu verwenden oder verwirrend ist, bleiben Sie dabei. Die Lernkurve ist wirklich nicht so steil, sobald Sie die API ein wenig lernen.

Wenn ich an einer Web-App arbeite, ist es selten für mich, eine signifikante Menge Code ohne Selenium RC-Tests zu schreiben, um es zu sichern. So effektiv finde ich Selen. :) (Hoffentlich beantwortet das Ihre Frage ..)

3

Wir verwenden Visual Studio 2008 Tester Edition.

Vorteile: Sehr gut bei Interaktion des Benutzers erfassen

Erfasst Ajax

nennt

Es ist sehr einfach Benutzereingabe in eine Datenbank, XML oder CSV-Datei

Das aufgenommene Test zur Karte kann für mehr Kontrolle in C# umgewandelt werden

Die gleichen Tests können für Belastungstest und Codeabdeckung

verwendet werden

Nachteile:

VS2008 Tester Edition ist eine separate SKU von der normalen Developer Edition, die

Sie sein kann alergic zu Microsoft zusätzliche Kosten ;-) bedeutet

wir verwendet haben, ist es sehr effektiv auf Projekte, aber es gibt eine Menge Aufwand, um Tests auf dem neuesten Stand zu halten, jedes Mal, wenn Sie einen Bildschirm ändern, muss der Test möglicherweise neu aufgenommen werden

Wir neigen dazu, die Tests kurz und scharf zu halten, tun eine Sache und gehen Sie raus, anstatt 10 Minuten lang in einem einzigen Test herumzuklicken.

Wir haben einige Standard-UI-Testtypen:

Menü Test: Melden Sie sich als einen bestimmten Benutzer (oder Benutzertyp/Rolle) und sicherstellen, dass alle erforderlichen Menüpunkte 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 überprüfen Sie, ob die Warnmeldungen bei Bedarf nicht mehr angezeigt werden.

Suchen Test: Suche Daten aus Ihrer Datenbank oder eine Datendatei und sorgen für die richtigen Daten verwenden, werden von der Suche zurück

Data Entry Test: neue recrords aus einer Datendatei erstellen, Bereinigung der Datenbank Damit Tests mehrere Male ausgeführt werden können

UI Testen ist ziemlich zeitaufwendig, aber das Komfortgefühl, das Sie bekommen, wenn einige hundert Tests bestehen, bevor Sie eine neue Version veröffentlichen, ist unbezahlbar.

0

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

0

Molybdenum ist über Selenium gebaut und hat einige zusätzliche Funktionen.

1

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

Da Silk4J Win32-Anwendungen steuern kann, können Browserdialoge direkt gesteuert werden. Dies ist ein Schritt über dem, was Selenium steuern kann, und ist besonders nützlich für Downloadaufforderungen.

Verwandte Themen