Frage

Wir setzen auf eine Selenium Testkampagne auf einer großen Web-Anwendung. Das erste, was wir getan haben, war, einen Rahmen zu bauen, die SQL-Daten in der Datenbank vor dem Test initialisieren, starten Sie den Test, Archiv Ergebnisse und dann klare Daten.

Wir haben das in einem Prozess Maven 2 integrieren, jeden Tag laufen von Teamcity auf einem dedizierte Datenbank.

Wir haben jetzt mehr Selenium-Tests eingerichtet, aber es ist nicht so wie geplant verwendet.

Die Gründe dafür sind, dass die Tests manchmal aus anderen Gründen als Regressionen gebrochen werden (Daten geändert haben, gespeicherte Prozedur neu kompiliert worden sein und so weiter).

Ich möchte wissen, ob es großen Erfolg in Benutzeroberfläche Tests sind und wenn ja, Gründe dafür. Commons Fehler kann mich auch interessieren.

War es hilfreich?

Lösung

Testbarkeit hilft viel. Der größte Gewinn für Testbarkeit in Web-Anwendungen ist, wenn alle HTML-Elemente, die Sie mit auf der Seite interagieren müssen haben einzigartige und konsistente Attribute . Wenn die Attribute Sie die HTML-Elemente zu identifizieren, verwenden (Selen verwendet XPath) sind nicht konsistent / zuverlässig von Build-to-Build oder Session-to-Sitzung werden Ihre Testskripts fehlschlagen. Außerdem müssen diese Attribute eindeutig sein, so dass das Automatisierungswerkzeug (in diesem Fall Selen) zuverlässig das Objekt auf der Web-Seite finden.

Andere Tipps

Wenn Sie zuverlässige Unit-Tests wollen, müssen Sie den gleichen Eingang haben. Ausgangszustand der Datenbank ist der Eingang . So müssen Sie die gleiche Start Datenbank jedes Mal haben. Natürlich, wenn Sie Tests mit verschiedenen Eingabe tun möchten , müssen Sie eine andere Einheit Test erstellen (als Ergebnisse werden natürlich nicht gleich sein).

Wenn ich Sachen wie diese zu tun, habe ich immer die gleiche Datenbank als Ausgangspunkt verwenden. richtige Weg ist, so dass einige andere nachfolgende Tests scheitern könnte auch, obwohl sie sonst nicht natürlich scheitern einige der Tests könnten, ohne die Datenbank zu ändern. Wenn Ihr Unit-Test-Tool ermöglicht, sollen Sie Abhängigkeiten zwischen den Tests definieren, um sicherzustellen, dass diese Tests nicht ausgeführt werden, wenn die ‚Eltern‘ ausfallen.

Ich verwende http-Einheit, die den zusätzlichen Vorteil der Arbeit vor Tätigung Styling der Seite hinzugefügt wurde.

http://httpunit.sourceforge.net/ Sie können die Tests legen in der Integrationstestphase für maven2 auszuführen.

Von der Website

  

in Java geschrieben, Httpunit emuliert die   relevante Teile Browser Verhalten,   einschließlich Formularübermittlung, JavaScript,   grundlegende HTTP-Authentifizierung, Cookies und   automatische Seitenumleitung und erlaubt   Java-Test-Code zu untersuchen zurück   Seiten entweder als Text, ein XML-DOM, oder   Behälter von Formen, Tabellen und   Links.

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