8

I nostri test CI falliscono casualmente con errore "chrome nottainchable". Inizialmente erano piuttosto rari, ma man mano che la nostra base di test cresce, diventa intollerabile. Ci sono molte altre domande/segnalazioni di bug su questo, ma nessuno di questi sembra riguardare il nostro caso.Il webdriver produce a caso "chrome non raggiungibile" sui test Linux

I test sono scritti con Cetriolo + Rubino + Watir-Webdriver + Selenium-Webdriver (ultime versioni di ogni gemma). Stiamo eseguendo i test su Ubuntu Linux 12.04 in modalità headless usando xvfb su hardware fisico (nessuna virtualizzazione). Posso riprodurlo in modo abbastanza affidabile sul mio laptop con Linux Mint 16. Stiamo eseguendo i test in parallelo per velocizzare le cose.

Ho provato a utilizzare sia Chromium 18.0.1025.151 ~ r130497-0ubuntu1 e Google Chrome 34.0.1847.116, con ChromeDriver v2.9.248304. Lo stesso problema si è verificato con le versioni precedenti del browser e ChromeDriver.

In genere diversi test hanno esito negativo in una riga a causa dello stesso errore e quindi viene riavviato su un test successivo durante la stessa esecuzione.

L'analisi dello stack è:

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"' 

Update: Il problema sembra essere legato al parallelismo. Quando uno dei test termina, c'è la possibilità che un altro inizi a fallire con "chrome non raggiungibile". Se aggiungo un ritardo alla fine dei test, in modo che tutti i test siano terminati prima di chiudere qualsiasi finestra di Chrome, i test vengono eseguiti senza problemi. I reported a bug contro ChromeDriver sul problema.

+0

Intermittente, di solito significa che la rete ha problemi intermittenti. hai provato a eseguire un ping -t www.google.com in un prompt dei comandi separato su ciascun computer coinvolto nel test? Quando l'ho provato, la maggior parte delle volte mi sono imbattuto in problemi irraggiungibili che stavo vedendo anche problemi di connessione. – gorbysbm

+0

Il problema si verifica sulla nostra rete locale, quindi dubito che la connettività di rete sia il problema. Aggiungerò il polling del ping solo per essere sicuro. Il problema si è notevolmente aggravato dopo l'aggiunta della parallelizzazione ai nostri test (test diversi vengono eseguiti in istanze separate di Chrome senza testa). – Sampo

+0

In realtà intendevo la rete locale. È molto possibile avere problemi di Internet nella propria azienda ... Ciò che non riesco a capire è un ottimo rimedio per quando è successo. Se si capisce qualcosa, si prega di inviare qualche codice :) – gorbysbm

risposta

0

Si può provare con le opzioni sottostanti,

1) Non posare i molti posti di lavoro Jenkins paralelly 2) Cercare di usare meno le discussioni, invece di più thread per creare browser.

Risolverà il tuo problema.

In caso di ulteriori test, è necessario implementare la griglia di selenio.

1

Ho avuto lo stesso problema, nel mio caso era perché user-data-dir, che è creato casualmente da chromedriver, in alcuni casi era lo stesso per diversi test. Ho risolto il problema sincronizzando la creazione del webdriver (le prestazioni non sono influenzate da questo)