Unsere CI-Tests schlagen nach dem Zufallsprinzip mit dem Fehler "Chrome nicht erreichbar" fehl. Anfangs waren sie ziemlich selten, aber als unsere Testbasis wächst, ist sie unerträglich geworden. Es gibt mehrere andere Fragen / Bug-Berichte darüber, aber keiner von diesen scheint sich auf unseren Fall zu beziehen.
Die Tests werden mit Gurke + Ruby + Watir-Webdriver + Selenium-Webdriver (neueste Versionen jedes Edelsteins) geschrieben. Wir führen die Tests auf Ubuntu Linux 12.04 im Headless-Modus unter Verwendung von xvfb auf physischer Hardware durch (keine Virtualisierung). Ich kann es ziemlich zuverlässig auf meinem Laptop mit Linux Mint 16 reproduzieren. Wir führen die Tests parallel durch, um die Dinge zu beschleunigen.
Ich habe versucht, Chromium 18.0.1025.151 ~ r130497-0ubuntu1 und Google Chrome 34.0.1847.116 mit ChromeDriver v2.9.248304 zu verwenden. Das gleiche Problem ist auch bei älteren Versionen des Browsers und ChromeDrivers aufgetreten.
In der Regel werden mehrere Tests hintereinander aufgrund desselben Fehlers fehlgeschlagen, und dann wird wieder mit einem späteren Test während desselben Laufs begonnen.
Die Stapelverfolgung ist:
%Vor%Update: Das Problem scheint mit der Parallelität zu tun zu haben. Wenn einer der Tests beendet wird, besteht die Möglichkeit, dass ein anderer Fehler mit "Chrome nicht erreichbar" auftritt. Wenn ich am Ende der Tests eine Verzögerung hinzufüge, sodass alle Tests abgeschlossen sind, bevor Chrome-Fenster geschlossen werden, werden die Tests problemlos ausgeführt. Ich habe einen Fehler gegen ChromeDriver über das Problem gemeldet.
Ich hatte das gleiche Problem, in meinem Fall war es, weil Benutzer-Daten-Verzeichnis, das zufällig von Chrom-Treiber erstellt wurde, in einigen Fällen für mehrere Tests identisch war. Ich habe es gelöst, indem ich die Webdriver-Erstellung synchronisiert habe (die Leistung ist davon nicht betroffen)
Sie können mit den folgenden Optionen versuchen,
1) Laufen Sie nicht viele Jenkins-Jobs paralell 2) Versuchen Sie, weniger Threads anstelle von mehr Threads zu verwenden, um den Browser zu erstellen.
Es wird Ihr Problem lösen.
Falls Sie mehr Tests haben, sollten Sie Selen Grid implementieren.
Tags und Links google-chrome selenium-webdriver selenium-chromedriver webdriver