Webdriverio: ESOCKETTIMEDOUT عند بدء الاختبارات في جينكينز

تم إنشاؤها على ٥ أبريل ٢٠١٨  ·  4تعليقات  ·  مصدر: webdriverio/webdriverio

المشكلة

لا يمكنني إجراء الاختبارات عدة مرات في جينكينز. يمكنني إجراء الاختبارات في جهازي المحلي عدة مرات وهي تعمل دائمًا بشكل جيد ، لكني أتلقى خطأ ESOCKETTIMEDOUT في Jenkins.

بيئة

  • إصدار WebdriverIO: حدث مع 4.10.1 والتحديث أيضًا إلى 4.12.0
  • إصدار Node.js: 8.9.1
  • وضع مستقل أو اختبار wdio: مستقل
  • إذا كان wdio testrunner ، يتم إجراء اختبارات متزامنة أو غير متزامنة: sync
  • حزم wdio الإضافية المستخدمة (إن وجدت): أنا أستخدم cucumber-boilerplate

تفاصيل

من المهم أن أذكر أنه عندما أحصل على هذا الخطأ ، لا يمكنني الاسترداد (يؤدي تشغيل الوظيفة مرارًا وتكرارًا في Jenkins دائمًا إلى نفس الخطأ). لكنني تمكنت من تشغيله مرتين أو ثلاث مرات دون أخطاء (لذلك ، رأيت أنه يعمل).
يتم إطلاق الاختبارات في Chrome. Jenkins عبد هو MacMini. لا يؤدي توفير مضيف ومنفذ السيلينيوم إلى حل المشكلة.

الارتباط بسجلات السيلينيوم / WebdriverIO

خطأ Jenkins مع مستوى السجل المطول مثل:

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

رمز إعادة إنتاج المشكلة

ما تقوم به وظيفة Jenkins بسيط للغاية:

  • اذهب إلى دير محدد
  • تعيين إصدار العقدة
  • تثبيت الغزل
  • ابدأ الاختبارات باستخدام:

التعليق الأكثر فائدة

بالنسبة لأولئك الذين يمكن أن يواجهوا نفس المشكلة ، لقد جربت للتو مع chrome مقطوعة الرأس وهو يعمل بشكل جيد منذ عدة أيام: D لذا أضف chromeOption "مقطوعة الرأس" في قدراتك ومعرفة ما إذا كان يعمل.

ال 4 كومينتر

يبدو أن WebdriverIO لا يمكنه إنشاء اتصال بخلفية WebDriver (على الأرجح Chromedriver). قد يكون هذا بسبب العديد من الأسباب ولكن من غير المحتمل أن يكون مرتبطًا بـ WebdriverIO. شيء ما غير صحيح في إعداد برنامج التشغيل الخاص بك. ربما تجري العديد من الاختبارات في نفس الوقت؟ لا يوجد شيء يمكننا القيام به لإصلاح ذلك في WebdriverIO. لذلك اغلاق هذا. لا تتردد في التواصل مع دعمناGitter إذا كان لديك المزيد من الأسئلة.

مرحبًا @ christian-bromann شكرًا لاستجابتك السريعة.

أشعر بالقلق لأنني أجري اختبارًا واحدًا فقط (ميزة واحدة) ، وتسجيل الدخول ، وأيضًا كما ذكرت ، تمكنت من رؤيتها تعمل في Jenkins لمدة 2-3 مرات ولكن بعد ذلك بدأت بالفشل (دائمًا مع نفس الخطأ ). هل من الممكن ألا يكون السلينيوم / مفك الويب مفصولًا / مغلقًا جيدًا عند انتهاء الاختبار؟ ربما هناك بعض الاتصالات المفتوحة من التشغيلات السابقة؟

لقد أجريت اختبارات مختلفة أخرى (لأنني أختبر شبكات مختلفة) وقمت بتهيئة وظائف جديدة في جينكينز ووجدت نفس المشكلة. الاختبارات الأولى تعمل بشكل جيد ثم بدأت بالفشل مع ESOCKETTIMEDOUT.

مرة أخرى ، يمكنني إجراء تلك الاختبارات محليًا دون مشاكل وعدة مرات.

بالنسبة لأولئك الذين يمكن أن يواجهوا نفس المشكلة ، لقد جربت للتو مع chrome مقطوعة الرأس وهو يعمل بشكل جيد منذ عدة أيام: D لذا أضف chromeOption "مقطوعة الرأس" في قدراتك ومعرفة ما إذا كان يعمل.

مرحبًا LaiaPR ، لدي نفس المشكلة اليوم. كما اقترحت ، فإن إضافة خيار "مقطوعة الرأس" يحل المشكلة. شكرا!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

kiraLinden picture kiraLinden  ·  3تعليقات

eawer picture eawer  ·  4تعليقات

mrahman2327 picture mrahman2327  ·  3تعليقات

christian-bromann picture christian-bromann  ·  3تعليقات

KOPTE3 picture KOPTE3  ·  3تعليقات