2016-06-11 11 views
0

Ich habe ein Projekt, das Selen und Testng verwendet. Ich habe Selen Grid getestet und konnte Tests parallel durchführen.Laufende Selentests in Parrallel (mehr als 2)

Das parallele Ausführen von mehr als 2 Tests ist jedoch nicht effizient, da 3 Testfälle parallel auf derselben Maschine ausgeführt werden, ist dies aufgrund des langsameren Netzwerks und der maximalen CPU langsamer. (Auf Google-VMs versucht).

Jeder hat es geschafft, +3 Testfälle effizient zu führen, wenn ja, irgendwelche Tipps. Ich möchte aus Kostengründen nicht mehr als eine virtuelle Maschine verwenden.

+0

Ich habe 4 parallele Instanzen auf meinem Computer ohne Leistungsprobleme ausgeführt. Es muss etwas mit der Maschine zu tun haben, auf der Sie es ausführen, oder mit der Art, wie Sie es auslösen. – JeffC

Antwort

0

Das Problem, mit dem Sie konfrontiert sind, ist nicht Selenium, sondern die begrenzte Leistung des Systems, auf dem Sie Ihre Tests durchführen.

Selen hat eine großartige Möglichkeit, dieses Problem anmutig zu behandeln. Sie können Ihre Skripts auf Remote-Computern ausführen. Ja, Maschinen wie im Plural und alles wird von Selen selbst gehandhabt. Um genau zu sein, wird es von Selenium Grid gehandhabt. Um mit Selen Grid zu beginnen, klicken Sie auf den obigen Link und das sollte Ihnen wirklich helfen.

Als zusätzlichen Bonus versuchen Sie, über BrowserStack zu lesen. Es bietet den Vorteil einer einfachen Skalierbarkeit gemäß Ihren Anforderungen und die Möglichkeit, Ihre Tests auf praktisch jedem verfügbaren Gerät und Browser mit der Möglichkeit der Versionskontrolle auszuführen. Und nein, ich arbeite noch nicht für sie.

0

Leider

Der einzige Weg, ich davon sehen kann, ist die Tests kleiner machen und die Menge an Tests parallel kleineren und Verbreitung sie aus über einen größeren Zeitskala ausgeführt werden.

Ich würde empfehlen, vielleicht mit einer zusätzlichen VM, die Auswirkungen wäre es vorteilhaft wäre.

Wie oben erwähnt ist Selen Grid, das ist ausgezeichnet, so werde ich Ihnen eine andere Lösung geben.

Sie können Jenkins verwenden, die auch verwendet werden können.

In meiner Umgebung habe ich 4 Jobs.

3 dieser Jobs verweisen auf TestNG-XML-Dateien, um alle Tests auszuführen, die in der Datei angegeben sind.

Ich habe dann einen anderen Job, der als Build Flow-Job bekannt ist. Dieser Job verweist auf die anderen 3 Jobs und führt sie aus, führt sie jedoch parallel aus.

Im Vergleich zu Selen Grid fand ich es viel einfacher zu implementieren. Es gibt Ihnen auch mehr Kontrolle (glaube ich), da Sie einen Überblick und Kontrolle über jede Phase Ihres Tests haben. Änderungen sind auch leicht zu machen.

Wenn Sie weitere Informationen wünschen, lassen Sie es mich wissen, und ich kann diese Antwort bearbeiten und es eher eine "How-To" als eine informative Antwort machen.

Auch mit Jenkins können Sie eine Master/Slave-Methode verwenden, mit der Sie auch Workloads zwischen VMs verteilen können. Das wäre großartig, wenn Sie eine andere VM in Besitz nehmen könnten, sofern die Ressourcen es erlauben.

Im Moment denke ich, die einzige Lösung für Ihr Problem ist die Zuweisung von mehr Arbeitsspeicher/eine andere VM oder nur die Menge der parallel laufenden Tests zu reduzieren und sie aus mehreren Chargen/Läufen zu verteilen, aber wenn Sie es versuchen um einem bestimmten Zeitfenster zu entsprechen (was ich tun musste), ist es möglicherweise nicht geeignet.

+0

Ich denke, die Verwendung von Jenkins ist eine großartige Idee, aber ich glaube, dass Selen in der Lage sein sollte, eine parallele Lösung zu liefern, die über 2 paralel Tests hinausgeht. Wie schaffen Sie es, Berichte aus verschiedenen Jobs zu zentralisieren – jnam

+0

Hey @jnam. Sie können es über zwei parallele Tests ausführen lassen, indem Sie in Ihren Build-Flow-Jobs die Jobs angeben, die Sie parallel ausführen. Sie müssen nur sicherstellen, dass Sie genug Executoren in Jenkins haben. Für die Berichterstellung verwende ich den Bereichsbericht als Listener, sodass für jede meiner XML-Dateien ein Bericht erstellt wird. – colin

Verwandte Themen