2016-04-06 7 views
0

Ich habe einen Selenentest geschrieben, der durch jede Option auf einer "Admin Panel" Seite klickt und dann Screenshots von jeder neuen Seite macht.Selenium Teststruktur

Ich habe jetzt die Aufgabe, diesen Test für jede Sprache zu machen (derzeit 11).

Wie gehe ich vor? Erstelle ich eine neue Testklasse für jede Sprache. Oder mache ich eine Schleife zu meinem bestehenden Test, der jede URL durchläuft (unterschiedliche URL für jede Sprache).

Der Testcode, den ich habe, funktioniert für jede Sprache.

Was ist die beste Vorgehensweise, um dies zu erreichen? Genießen Sie die ganze

EDIT Mit Java, TestNG und POM

+0

ist dies ein Test, oder ist es ein Werkzeug Screenshots zu generieren? Machst du irgendwelche automatischen Tests der Seiten oder verwendest du einfach Selen, um Screenshots machen zu können? –

+0

Ich denke, eine Kombination von machen es möglich, Screenshots zu machen, sondern auch jeden Link auf der Website zu testen –

Antwort

0

In meinem Verständnis Nutzung vorhandenen Code helfen also, wenn irgendeine Änderung kommen wird, dann müssen Sie weniger Wartbarkeit für das Skript es wieder richtig laufen.

Kurz nach jeder Sprache pflegen Sie die Logs und Screenshot Beschreibung entsprechend, damit Sie die Fehler richtig verfolgen können.

1

Wenn Sie Ihren Test in JUnit geschrieben haben, können Sie den Parameter verwenden, um Ihren Test zu parametrisieren. Sie könnten die Sprachen als Parameter definieren und es führt automatisch den Test für alle Sprachen durch.

Wenn Sie TestNG verwenden, können Sie auch Ihre Tests parametrisieren und die Daten mit einer annotierten Methode @DataProvider bereitstellen, mehr Details here.

+0

Ich benutze TestNG, ich denke, es gibt eine ähnliche Option :) –

0

Ich nehme an, Sie verwenden POM !? Wenn das so ist, ist es natürlich gut, Ihre Seitenobjekte erneut zu verwenden, aber dann sind Sie darauf beschränkt, Ihre Webelemente nicht anhand ihrer Linktexte zu finden, was auf einigen Websites schwierig werden könnte.

Wenn dies kein Problem auf der Website ist, die Sie testen, dann fahren Sie fort und verwenden Sie Ihre Klassen erneut. Wenn es ist ein Problem, dann sollten Sie eine Basisklasse pro Webseite schreiben und leiten Sie eine bestimmte Klasse pro Sprache aus jeder dieser Basisklassen, wo alle LinkText und andere sprachspezifische Sachen befindet. Wenn 90% jeder Seite sprachspezifisch sind, ist es natürlich sinnvoller, die Basisklassen wegzulassen und einfach eine Klasse pro Seite/Sprache zu schreiben.

+0

Ja, ich benutze POM. Der Nachteil, den ich mit dem Durchlaufen aller URLs in einem Test sehe, ist die Laufzeit des Tests wird viel länger sein und ich kann nicht wählen, nur einen Sprachtest zu laufen. Wird mein Seitenobjekt nicht erneut verwendet, egal welchen Pfad ich wähle? Danke für Hilfe –

0

@RichardHansson Verwenden Sie einen DataProvider wie Gerald, der oben erwähnt wird. Wenn Sie eine Schleife verwenden, führt ein Fehler bei einem der Tests dazu, dass alle anderen Tests nicht ausgeführt werden, und es kann schwierig sein, genau festzustellen, wo das Problem lag. Wenn Sie die @DataProvider Anmerkung verwenden dann

  • jedes Szenario läuft, wie es auf der ohne Abhängigkeit eigenen Test ist andere
  • Jeder Test wird es eigene Ergebnisse in testng Berichten
  • keine Duplizierung von Code

http://testng.org/doc/documentation-main.html#parameters-dataproviders