8

Nasze testy CI nieudane losowo z błędem "chrome not reachable". Początkowo były one dość rzadkie, ale wraz z rosnącą bazą testową stało się nie do zniesienia. Istnieje kilka innych pytań/zgłoszeń błędów na ten temat, ale żaden z nich nie wydaje się odnosić do naszej sprawy.Webdriver losowo produkuje 'chrome not reachable' na testach Linuksa

Testy zostały napisane za pomocą Cucumber + Ruby + Watir-Webdriver + Selenium-Webdriver (najnowsze wersje każdego klejnotu). Testy na Ubuntu Linux 12.04 uruchamiamy w trybie bezobsługowym, używając xvfb na fizycznym sprzęcie (bez wirtualizacji). Mogę odtworzyć to całkiem niezawodnie na moim laptopie z Linuxem Mintem 16. Przeprowadzamy testy równolegle, aby przyspieszyć działanie.

Próbowałem używać zarówno Chrome Chromium 18.0.1025.151 ~ r130497-0ubuntu1, jak i Google Chrome 34.0.1847.116, z ChromeDriver v2.9.248304. Ten sam problem wystąpił również w starszych wersjach przeglądarki i ChromeDriver.

Zazwyczaj kilka testów kończy się niepowodzeniem z rzędu z powodu tego samego błędu, a następnie rozpoczyna pracę ponownie w późniejszym teście podczas tego samego przebiegu.

Ślad stosu jest:

chrome not reachable 
    (Session info: chrome=34.0.1847.116) 
    (Driver info: chromedriver=2.9.248304,platform=Linux 3.2.0-60-generic x86_64) (Selenium::WebDriver::Error::WebDriverError) 
    /home/weller/jenkins/workspace/TEST_CHROME_C/server/cucumber/support/step_support/browsers.rb:14:in `goto' 
    /home/weller/jenkins/workspace/TEST_CHROME_C/server/cucumber/support/step_support/browsers.rb:35:in `blank_page' 
    /home/weller/jenkins/workspace/TEST_CHROME_C/server/cucumber/support/step_support/browsers.rb:44:in `add_cookie' 
    ./features/support/mocking.rb:11:in `mock' 
    ./features/support/time_steps.rb:5:in `/^the current time zone is "(.*?)"$/' 
    features/trackers/mood/mood_data_entry.feature:7:in `And the current time zone is "GMT+4"' 

Aktualizacja: Problem wydaje się być związane z równoległości. Gdy jeden z testów zakończy się, istnieje szansa, że ​​inny zacznie działać z błędem "niedostępny chrom". Jeśli dodaję opóźnienie do końca testów, aby wszystkie testy zakończyły się przed zamknięciem dowolnego okna Chrome, testy przebiegły bez problemu. I reported a bug przeciwko ChromeDriver na temat problemu.

+0

Intermittent oznacza zazwyczaj, że w sieci występują sporadyczne problemy. czy próbowałeś wykonać polecenie ping -t www.google.com w osobnym wierszu polecenia na każdym komputerze biorącym udział w teście? Kiedy próbowałem tego, przez większość czasu otrzymywałem nieosiągalne problemy z chromem, również miałem problemy z połączeniem. – gorbysbm

+0

Problem występuje w naszej lokalnej sieci, więc wątpię, aby problem dotyczył łączności sieciowej. Dodam tylko, że sondowanie ping jest pewne. Problem został znacznie pogorszony po dodaniu do naszych testów testów równoległych (różne testy są uruchamiane w oddzielnych bezgłowskich wystąpieniach Chrome). – Sampo

+0

Właściwie miałem na myśli sieć lokalną. Jest bardzo możliwe, że masz problemy z Internetem we własnej firmie ... To, czego nie mogłem wymyślić, jest najlepszym rozwiązaniem, gdy tak się stało. Jeśli coś wymyślisz, proszę załóż trochę kodu :) – gorbysbm

Odpowiedz

0

Można spróbować z poniższych opcji,

1) Nie uruchamiać wiele Jenkins pracy Równolegle 2) Spróbuj użyć mniej wątki, zamiast więcej wątków stworzyć przeglądarkę.

To rozwiąże twój problem.

W przypadku, gdy masz więcej badań, powinieneś zaimplementować siatkę selenu.

1

Miałem ten sam problem, w moim przypadku dlatego, że katalog danych użytkownika, który jest losowo tworzony przez chromedriver, w niektórych przypadkach był taki sam dla kilku testów. Rozwiązałem go, synchronizując tworzenie webdrivera (nie ma to wpływu na wydajność).

Powiązane problemy