Webdriverio: ESOCKETTIMEDOUT al iniciar pruebas en Jenkins

Creado en 5 abr. 2018  ·  4Comentarios  ·  Fuente: webdriverio/webdriverio

El problema

No puedo ejecutar pruebas varias veces en Jenkins. Puedo ejecutar pruebas en mi máquina local varias veces y siempre funciona bien, pero recibo un error ESOCKETTIMEDOUT en Jenkins.

Medio ambiente

  • Versión de WebdriverIO: sucedió con 4.10.1 y también se actualizó a 4.12.0
  • Versión de Node.js: 8.9.1
  • Modo autónomo o wdio testrunner: autónomo
  • si wdio testrunner, ejecutando pruebas sincrónicas o asincrónicas: sincronizar
  • Paquetes wdio adicionales utilizados (si corresponde): estoy usando pepino-boilerplate

Detalles

Es importante mencionar que cuando obtengo este error, no puedo recuperarme (ejecutar una y otra vez el trabajo en Jenkins siempre produce el mismo error). Pero he podido ejecutarlo 2-3 veces sin errores (así que lo he visto funcionar).
Las pruebas se inician en Chrome. El esclavo de Jenkins es un MacMini. Proporcionar un host y un puerto de selenio no soluciona el problema.

Enlace a los registros de Selenium / WebdriverIO

El error de Jenkins con nivel de registro detallado es 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 reproducir el problema

Lo que hace el trabajo de Jenkins es muy simple:

  • ir al directorio específico
  • establecer la versión del nodo
  • instalación de hilo
  • lanzar las pruebas con: yarn run wdio

Comentario más útil

Para aquellos que pueden estar experimentando el mismo problema, probé con Chrome sin cabeza y está funcionando bien hace algunos días: D Así que agregue la opción chromeOption "sin cabeza" en sus capacidades y vea si funciona.

Todos 4 comentarios

Parece que WebdriverIO no puede establecer una conexión con el backend de WebDriver (probablemente Chromedriver). Esto podría deberse a muchas razones, pero es poco probable que esté relacionado con WebdriverIO. Algo no está bien con la configuración de su controlador. ¿Quizás corres a muchas pruebas al mismo tiempo? No hay nada que podamos hacer para solucionar este problema en WebdriverIO. Por lo tanto, cerrando esto. No dude en comunicarse con nuestro apoyoGitter si tiene más preguntas.

Hola @ christian-bromann, gracias por tu rápida respuesta.

Estoy preocupado porque solo estoy ejecutando una prueba (una característica), el inicio de sesión, y también, como mencioné, pude verlo funcionar en Jenkins 2-3 veces, pero luego comenzó a fallar (siempre con el mismo error ). ¿Es posible que el selenium / webdriver no esté bien desconectado / cerrado cuando finalice la prueba? ¿Quizás hay algunas conexiones abiertas de ejecuciones anteriores?

Hice otras pruebas diferentes (ya que estoy probando diferentes webs) y configuré nuevos trabajos en Jenkins y encontré el mismo problema. Las primeras pruebas funcionan bien y luego comenzó a fallar con ESOCKETTIMEDOUT.

Nuevamente, puedo ejecutar esas pruebas en local sin problemas y varias veces.

Para aquellos que pueden estar experimentando el mismo problema, probé con Chrome sin cabeza y está funcionando bien hace algunos días: D Así que agregue la opción chromeOption "sin cabeza" en sus capacidades y vea si funciona.

Hola @LaiaPR , tuve el mismo problema hoy. Como sugirió, agregar la opción "sin cabeza" soluciona el problema. ¡Gracias!

¿Fue útil esta página
0 / 5 - 0 calificaciones