Webdriverio: ESOCKETTIMEDOUT saat meluncurkan tes di Jenkins

Dibuat pada 5 Apr 2018  ·  4Komentar  ·  Sumber: webdriverio/webdriverio

Masalah

Saya tidak dapat menjalankan tes beberapa kali di Jenkins. Saya dapat menjalankan tes di mesin lokal saya beberapa kali dan selalu berfungsi dengan baik, tetapi saya mendapatkan kesalahan ESOCKETTIMEDOUT di Jenkins.

Lingkungan

  • Versi WebdriverIO: terjadi dengan 4.10.1 dan juga memperbarui ke 4.12.0
  • Versi Node.js: 8.9.1
  • Mode mandiri atau wdio testrunner: mandiri
  • jika wdio testrunner, menjalankan tes sinkron atau asinkron: sinkronkan
  • Paket wdio tambahan yang digunakan (jika ada): Saya menggunakan mentimun-boilerplate

rincian

Penting untuk disebutkan bahwa ketika saya mendapatkan kesalahan ini, saya tidak dapat memulihkan (menjalankan lagi dan lagi pekerjaan di Jenkins selalu menghasilkan kesalahan yang sama). Tapi saya sudah bisa menjalankannya 2-3 kali tanpa kesalahan (jadi, saya sudah melihatnya bekerja).
Pengujian diluncurkan di Chrome. Budak Jenkins adalah MacMini. Menyediakan host dan port Selenium tidak memperbaiki masalah.

Tautan ke log Selenium/WebdriverIO

Kesalahan Jenkins dengan verbose loglevel seperti:

+ 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.

Kode Untuk Mereproduksi Masalah

Apa yang dilakukan pekerjaan Jenkins sangat sederhana:

  • pergi ke direktori tertentu
  • setel versi simpul
  • pemasangan benang
  • luncurkan tes dengan: yarn run wdio

Komentar yang paling membantu

Bagi mereka yang dapat mengalami masalah yang sama, saya baru saja mencoba dengan chrome tanpa kepala dan berfungsi dengan baik beberapa hari yang lalu :D Jadi tambahkan chromeOption "tanpa kepala" di kemampuan Anda dan lihat apakah itu berfungsi.

Semua 4 komentar

Sepertinya WebdriverIO tidak dapat membuat koneksi ke backend WebDriver (mungkin Chromedriver). Ini bisa disebabkan oleh banyak alasan tetapi tidak mungkin terkait dengan WebdriverIO. Ada yang tidak beres dengan pengaturan driver Anda. Mungkin Anda menjalankan banyak tes sekaligus? Tidak ada yang bisa kami lakukan untuk memperbaikinya di WebdriverIO. Untuk itu menutup ini. Jangan ragu untuk menghubungi dukungan kamiGitter jika Anda memiliki pertanyaan lebih lanjut.

Hai @christian-bromann terima kasih atas tanggapan cepat Anda.

Saya khawatir karena saya hanya menjalankan satu tes (satu fitur), login, dan juga seperti yang saya sebutkan, saya dapat melihatnya berfungsi di Jenkins selama 2-3 kali tetapi kemudian mulai gagal (selalu dengan kesalahan yang sama ). Apakah mungkin Selenium/webdriver tidak terputus/tertutup dengan baik ketika tes selesai? Mungkin ada beberapa koneksi yang dibuka dari proses sebelumnya?

Saya melakukan tes lain yang berbeda (karena saya menguji web yang berbeda) dan mengonfigurasi pekerjaan baru di Jenkins dan menemukan masalah yang sama. Tes pertama berfungsi dengan baik dan kemudian mulai gagal dengan ESOCKETTIMEDOUT.

Sekali lagi, saya dapat menjalankan tes tersebut di lokal tanpa masalah dan beberapa kali.

Bagi mereka yang dapat mengalami masalah yang sama, saya baru saja mencoba dengan chrome tanpa kepala dan berfungsi dengan baik beberapa hari yang lalu :D Jadi tambahkan chromeOption "tanpa kepala" di kemampuan Anda dan lihat apakah itu berfungsi.

Hai @LaiaPR , Saya memiliki masalah yang sama hari ini. Seperti yang Anda sarankan, menambahkan opsi "tanpa kepala" memperbaiki masalah. Terima kasih!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat