Webdriverio: ESOCKETTIMEDOUT ao lançar testes no Jenkins

Criado em 5 abr. 2018  ·  4Comentários  ·  Fonte: webdriverio/webdriverio

O problema

Não consigo executar testes várias vezes no Jenkins. Posso executar testes em minha máquina local várias vezes e sempre funciona bem, mas estou recebendo um erro ESOCKETTIMEDOUT no Jenkins.

Ambiente

  • Versão do WebdriverIO: aconteceu com 4.10.1 e também atualizou para 4.12.0
  • Versão Node.js: 8.9.1
  • Modo autônomo ou wdio testrunner: autônomo
  • se wdio testrunner, executando testes síncronos ou assíncronos: sync
  • Pacotes wdio adicionais usados ​​(se aplicável): Estou usando pepino-boilerplate

Detalhes

Importante mencionar que quando recebo esse erro, não consigo me recuperar (executando repetidamente o job no Jenkins sempre produz o mesmo erro). Mas fui capaz de executá-lo 2 a 3 vezes sem erros (então, eu vi funcionar).
Os testes são iniciados no Chrome. O escravo Jenkins é um MacMini. Fornecer host e porta selênio não corrige o problema.

Link para registros do Selenium / WebdriverIO

O erro do Jenkins com nível de log detalhado é como:

+ yarn run local-webserver
yarn run v1.3.2
$ forever start -s ./node_modules/.bin/http-server ./demo-app -s
warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: ./node_modules/.bin/http-server
Done in 0.44s.
+ yarn run wdio
yarn run v1.3.2
$ /Users/jenkins/workspace/family-portal-deploy-test/e2etests/node_modules/.bin/wdio
[18:48:07]  COMMAND POST     "/wd/hub/session"
[18:48:07]  DATA        {"desiredCapabilities":{"javascriptEnabled":true,"locationContextEnabled":true,"handlesAlerts":true,"rotatable":true,"maxInstances":5,"browserName":"chrome","loggingPrefs":{"browser":"ALL","driver":"ALL"},"requestOrigins":{"url":"http://webdriver.io","version":"4.12.0","name":"webdriverio"}}}
ERROR: ESOCKETTIMEDOUT
chrome
    at new RuntimeError (/Users/jenkins/workspace/family-portal-deploy-test/e2etests/node_modules/webdriverio/build/lib/utils/ErrorHandler.js:144:12)
    at Request._callback (/Users/jenkins/workspace/family-portal-deploy-test/e2etests/node_modules/webdriverio/build/lib/utils/RequestHandler.js:330:43)
    at self.callback (/Users/jenkins/workspace/family-portal-deploy-test/e2etests/node_modules/request/request.js:186:22)
    at emitOne (events.js:116:13)
    at Request.emit (events.js:211:7)
    at ClientRequest.<anonymous> (/Users/jenkins/workspace/family-portal-deploy-test/e2etests/node_modules/request/request.js:816:16)
    at Object.onceWrapper (events.js:313:30)
    at emitNone (events.js:106:13)
    at ClientRequest.emit (events.js:208:7)
    at Socket.emitTimeout (_http_client.js:708:34)
    at Object.onceWrapper (events.js:313:30)
    at emitNone (events.js:106:13)
    at Socket.emit (events.js:208:7)
    at Socket._onTimeout (net.js:407:8)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)

error Command failed with exit code 1.

Código para reproduzir o problema

O que o trabalho do Jenkins está fazendo é muito simples:

  • vá para um diretório específico
  • definir a versão do nó
  • instalação de fios
  • inicie os testes com: yarn run wdio

Comentários muito úteis

Para aqueles que podem estar passando pelo mesmo problema, eu tentei apenas com o cromo sem cabeça e está funcionando bem há alguns dias: D Portanto, adicione o chromeOption "sem cabeça" em suas capacidades e veja se funciona.

Todos 4 comentários

Parece que o WebdriverIO não consegue estabelecer uma conexão com o back-end do WebDriver (provavelmente Chromedriver). Isso pode ser devido a vários motivos, mas é improvável que esteja relacionado ao WebdriverIO. Algo não está certo com a configuração do seu driver. Talvez você execute vários testes ao mesmo tempo? Não há nada que possamos fazer para corrigir isso no WebdriverIO. Portanto, fechando isso. Sinta-se à vontade para entrar em contato com nosso suporteGitter se você tiver mais perguntas.

Olá @ christian-bromann, obrigado pela sua resposta rápida.

Estou preocupado porque estou executando apenas um teste (um recurso), o login, e também como mencionei, fui capaz de vê-lo funcionar no Jenkins por 2 a 3 vezes, mas depois começou a falhar (sempre com o mesmo erro ) É possível que o selênio / webdriver não esteja bem desconectado / fechado quando o teste for concluído? Talvez haja algumas conexões abertas de execuções anteriores?

Fiz outros testes diferentes (já que estou testando sites diferentes) e configurei novos jobs no Jenkins e encontrei o mesmo problema. Os primeiros testes estão funcionando bem e depois começaram a falhar com ESOCKETTIMEDOUT.

Novamente, posso executar esses testes no local sem problemas e várias vezes.

Para aqueles que podem estar passando pelo mesmo problema, eu tentei apenas com o cromo sem cabeça e está funcionando bem há alguns dias: D Portanto, adicione o chromeOption "sem cabeça" em suas capacidades e veja se funciona.

Olá @LaiaPR , tive o mesmo problema hoje. Como você sugeriu, adicionar a opção "sem cabeça" corrige o problema. Obrigado!

Esta página foi útil?
0 / 5 - 0 avaliações