Selenium RC: Führen Sie Tests automatisch in mehreren Browsern aus

8

Also habe ich begonnen, einige Ruby-Unit-Tests zu erstellen, die Selenium RC verwenden, um meine Web-App direkt in der Browser. Ich benutze den Selenum-Client für Ruby. Ich habe eine Basisklasse für alle meine anderen Selentests erstellt, von denen ich erben kann.

Dies erzeugt zahlreiche SeleniumDriver-Instanzen und alle Methoden, die fehlen, werden für jede Instanz aufgerufen. Dies führt im Wesentlichen die Tests parallel.

Wie haben andere Leute das automatisiert?

Dies ist meine Implementierung:

%Vor%

Das funktioniert, aber wenn ein Browser ausfällt, schlägt der gesamte Test fehl, und es gibt keine Möglichkeit zu wissen, in welchem ​​Browser es fehlgeschlagen ist.

    
Daniel Beardsley 17.10.2008, 19:00
quelle

4 Antworten

4

Haben Sie Selenium Grid getestet? Ich denke, es schafft einen ziemlich guten zusammenfassenden Bericht, der Details zeigt, die Sie brauchen. Ich könnte mich irren, da ich es eine ganze Weile nicht benutzt habe.

    
ya23 19.10.2008, 20:20
quelle
1

Ich habe Selenium's protocol.rb geändert, um eine AssertionFailedError mit der @browser_string und der zurückgegebenen Nachricht aus dem Selenium RC zu erstellen, wenn die Antwort nicht mit "OK" begonnen hat. Ich habe auch die Methode http_post geändert, um den gesamten Antworttext zurückzugeben, und method_missing , um ein Array mit Rückgabewerten für die Ausgabe von get_X-Befehlen an Selenium RC zurückzugeben.

Fügen Sie diesen Code dem Code in der Frage hinzu, und Sie sollten sehen können, welche Assertionen in welchen Browsern fehlschlagen.

%Vor%     
Daniel Beardsley 21.10.2008 08:09
quelle
0

Haftungsausschluss: Kein Selen-Experte.

Möchten Sie nur wissen, welcher Browser fehlgeschlagen ist, oder möchten Sie den Test in allen Browsern ausführen und dann die vollständigen Fehler melden, wenn dies erledigt ist?

Ersteres ist ziemlich einfach, wenn Sie die Treiber in Ihrem Setup mit Hash speichern. (Ich bin mir sicher, dass es eine fantastische Art und Weise gibt, dies mit Hash.inject zu tun, aber ich bin faul.)

%Vor%

Ändern Sie dann Ihre Kernfunktion, um Ausnahmen so zu ändern, dass sie den Namen des verwendeten Treibers enthalten, etwa wie folgt:

%Vor%

Sollte dich nahe bringen.

    
Dan Fitch 19.10.2008 14:17
quelle
0

Sie müssen jeden Test unabhängig voneinander behandeln. Wenn also ein Test fehlschlägt, wird er weitere Tests durchführen. Schauen Sie sich phpunit und selen rc

an     
hkshambesh 17.11.2009 16:28
quelle