it-swarm.com.de

Chromedriver ist auf einer bestimmten Maschine mit Selenium Grid und .net extrem langsam

Überblick: Chromedriver arbeitet normalerweise auf einer Maschine, aber extrem langsam auf zwei anderen identischen Maschinen.

Setup:

  • Selenium Webdriver mit .Net zur Codierung und Selenium Grid zur Verteilung der Tests. MSTest wird innerhalb von Visual Studio 2010 zum Ausführen der Tests verwendet.
  • Ein lokaler 64-Bit-Windows 7-Computer, der als Hub fungiert
  • Drei 32-Bit-Win 7-Remotemaschinen (zwei davon sind virtuell) in meinem lokalen Netzwerk, die alle als Knoten konfiguriert sind. Hier ist der Befehl, mit dem die Knoten auf den Remote-Computern gestartet werden:

    Java -Jar c:\SeleniumWebDriver\SeleniumGrid\Selenium-Server-Standalone-2.31.0.jar -Role-Knoten -hub http://XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX.XXX: 4444/grid/register browser "browserName = chrome", maxInstances = 4 -Dwebdriver.chrome.driver = "C:\seleniumWebDriver\chromedriver.exe"

  • Der Treiber wird wie folgt vom Code aus gestartet:

    DesiredCapabilities-Funktionalität = neu DesiredCapabilities (); Capability.SetCapability (CapabilityType.BrowserName, Browser); Driver = neuer RemoteWebDriver (neuer Uri (hubUrl), Capability);

  • Die Variablen "browser" und "hubUrl" oben werden über eine zur Laufzeit erstellte Datei app.config übergeben. Für diesen Fall ist Browser = Chrome.

Problem:  

  • Wenn ich die Maschine 212 (die eine virtuelle Maschine ist) mit dem obigen Befehl als Chrome-Knoten einrichte und dann die Skripts vom Hub aus starte, sehe ich, dass Chrome in der richtigen Remote-Maschine gestartet wird und normal ausgeführt wird. Es gibt zwischen 5-10 Befehle pro Sekunde.

  • Wenn ich entweder Maschine 78 (virtuelle Maschine) oder Maschine 103 (echte Maschine) auf dieselbe Weise als Knoten einrichten und dann die Skripts vom Hub aus starten, sehe ich, dass der Knoten Chrome ordnungsgemäß startet. Es läuft jedoch extrem langsam, wie 1 Befehl pro Sekunde oder weniger.

Andere Informationen: Wie gesagt, auf einer Maschine funktioniert Chrom normal, auf den anderen läuft es jedoch extrem langsam. Firefox und IE funktionieren normalerweise, wenn sie als Knoten konfiguriert sind.

Ich habe die Maschine 212 (die einwandfrei funktioniert) mit den anderen Maschinen verglichen und kann den Unterschied nicht finden. Alle Maschinen verwenden 'Selenium-server-standalone-2.31.0.jar' und dieselbe Version des ChromeDriver.

Es scheint nicht, dass die Knotenmaschinen überlastet sind. Es ist auch ein sehr konsistenter Leistungsunterschied, der nicht mit einer schwankenden Belastung des Netzwerks oder der Maschinen zusammenhängt.

Mein Netzwerktechniker hat bestätigt, dass alle diese Computer im Netzwerk identisch konfiguriert sind.

Hat jemand so etwas schon einmal gesehen?

BEARBEITEN 1: Ich habe mich heute angemeldet und alle drei Remote-Computer laufen langsam. Bevor einer von ihnen normal war, sind sie jetzt alle langsam.

22
Sky

Ich stieß auf ein ähnliches Problem, bei dem der Chromedriver auf einigen Maschinen langsam war und es sich als Proxy-Problem herausstellte. Deaktivieren Sie "Einstellungen automatisch erkennen" unter Chrome: // Einstellungen> Proxy-Einstellungen ändern> LAN-Einstellungen> Webdriver hat die Ausführung von Befehlen in Chrome für mich beschleunigt.

31
auto

In meinen Proxy-Einstellungen wurde keine automatische Erkennung verwendet. Ich fand jedoch, dass die folgenden Einstellungen sehr geholfen haben. Die Zeit, die der Fahrer zum Starten benötigte, ging von 43 Sekunden auf 1 Sekunde zurück

driver = new ChromeDriver(new ChromeOptions{Proxy = null}); 
7
Lamaan Ball

Bug Link in Chromedriver-Problemen Dies ist ein Problem mit langer Priorität, das die niedrigste Priorität hat. Aber da mehr Benutzer dafür stimmen werden, wird es vielleicht jemand korrigieren. Es könnte auch auf Parsen der Proxy-Konfiguration ist nicht standardkonform gesetzt werden, das bald behoben wird.

0
SkorpEN