Verwenden Sie Selenium RC direkt oder Selenium mit Robot Framework

8

Ich muss zugeben, dass ich mich in Selenium wegen seiner Record-and-Play-Funktion und der Testfallgenerierungsfunktion für die aufgezeichneten Aktionen der IDE verliebte. Aber ich zögere immer noch, wegen der nebensächlichen Details (zB das Lokalisieren der Ereignisse mit DOM, xpath..etc), die während der Aufzeichnung in den Testfall eingebaut werden, zur Implementierungsphase überzugehen Der Testfall schlägt fehl, wenn nach dem Import in die RC eine HTML-Änderung erfolgt. Ich verstehe vollkommen, dass es ein Teil der Aufgaben der Tester ist, die erwarteten Ergebnisse von Zeit zu Zeit als Teil des Regressionstests anzupassen, aber ich möchte auch nicht, dass die dafür aufgewendete Zeit größer ist als die Zeit, die für den manuellen Test benötigt wird .

Soweit ich weiß Selenium mit Robot Framework hat die Schlüsselwörter Form von Testfällen. Meine Vermutung ist, dass es uns ermöglicht, die zufälligen Details in verschiedene Schlüsselwörter zu extrahieren, was dazu führen könnte, dass die Testfälle leichter angepasst und besser gewartet werden können. (Bitte korrigieren Sie mich, wenn ich falsch liege)

Wir freuen uns über Vorschläge, wie eine effektive Umgebung für die Benutzeroberflächenautomatisierung eingerichtet werden sollte. Soll ich Selenium RC oder Selenium mit Robot Framework verwenden? Und warum?

Vielen Dank im Voraus

    
Daniel 04.02.2011, 20:10
quelle

2 Antworten

9

Sie haben absolut Recht, dass zufällige und sich oft ändernde Details in den produzierten Skripten das größte Problem der Automation von Aufzeichnungen und Wiedergaben darstellen. Sie können natürlich die Details nach der Aufzeichnung aus den Skripten entfernen, aber meiner Meinung nach ist es besser, wiederverwendbare Bibliotheken und Code-Skripte von Anfang an manuell zu erstellen.

Eine gute Alternative zum Codieren von Skripten, die "echte" Programmiersprachen verwenden, ist die Verwendung eines Automatisierungsframeworks auf höherer Ebene, z. B. Robot Framework dass du erwähnt hast. Wie Sie spekulierten, machen die wiederverwendbaren Schlüsselwörter und Variablen von Robot die Extraktion von Details aus Tests sehr einfach. Die Testfälle in SeleniumLibrary's Demo veranschaulichen das sehr gut und die Demo zeigt auch, wie man Selenium durch verwendet Roboter.

Sie haben auch nach Sikuli gefragt. Ich habe es nie selbst benutzt, aber es sieht sehr interessant aus. Sie könnten sich für dieses tolle How-To interessieren, das erklärt wie man es über Robot Framework verwendet.

    
Pekka Klärck 09.03.2011, 14:16
quelle
2

Unsere Firma benutzt Fitnesse, nicht Robot, um Selen zu kontrollieren, aber wir haben das gleiche Problem. Wir haben von Annahmen über das DOM zum Zugriff auf Elemente nur noch über ID gewechselt. Da dies in Fitnesse mühsam ist, arbeiten wir derzeit daran, ein Selenium-Backend zu unserem eigenen Framework hinzuzufügen (das zuvor nur Backends für Java und Smalltalk hatte).

Indem wir also verlangen, dass Elemente mit bestimmten IDs im DOM vorhanden sind, werden wir natürlich unsere Tests unterbrechen, wenn jemand die Elemente von der Seite entfernt; Wir haben jedoch festgestellt, dass dieses Verhalten sehr nützlich ist, da dies den Vertrag der Tests mit der Implementierung erzwingt und es ist gut, dass wir fehlende Elemente finden, sobald jemand die Implementierung durchbricht.

Außerdem ist es empfehlenswert, die Automatisierung der Benutzeroberfläche auf Skin-Deep-Ebene zu beschränken: Testen Sie nur das, was auf der Seite mit Selenium vorhanden ist, und testen Sie die Geschäftslogik, indem Sie die zugrunde liegenden Funktionen direkt aufrufen.

    
Bernd Elkemann 23.02.2011 18:01
quelle