لا يمكنني إجراء الاختبارات عدة مرات في جينكينز. يمكنني إجراء الاختبارات في جهازي المحلي عدة مرات وهي تعمل دائمًا بشكل جيد ، لكني أتلقى خطأ ESOCKETTIMEDOUT في Jenkins.
من المهم أن أذكر أنه عندما أحصل على هذا الخطأ ، لا يمكنني الاسترداد (يؤدي تشغيل الوظيفة مرارًا وتكرارًا في Jenkins دائمًا إلى نفس الخطأ). لكنني تمكنت من تشغيله مرتين أو ثلاث مرات دون أخطاء (لذلك ، رأيت أنه يعمل).
يتم إطلاق الاختبارات في Chrome. Jenkins عبد هو MacMini. لا يؤدي توفير مضيف ومنفذ السيلينيوم إلى حل المشكلة.
خطأ 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 بسيط للغاية:
يبدو أن WebdriverIO لا يمكنه إنشاء اتصال بخلفية WebDriver (على الأرجح Chromedriver). قد يكون هذا بسبب العديد من الأسباب ولكن من غير المحتمل أن يكون مرتبطًا بـ WebdriverIO. شيء ما غير صحيح في إعداد برنامج التشغيل الخاص بك. ربما تجري العديد من الاختبارات في نفس الوقت؟ لا يوجد شيء يمكننا القيام به لإصلاح ذلك في WebdriverIO. لذلك اغلاق هذا. لا تتردد في التواصل مع دعمنا إذا كان لديك المزيد من الأسئلة.
مرحبًا @ christian-bromann شكرًا لاستجابتك السريعة.
أشعر بالقلق لأنني أجري اختبارًا واحدًا فقط (ميزة واحدة) ، وتسجيل الدخول ، وأيضًا كما ذكرت ، تمكنت من رؤيتها تعمل في Jenkins لمدة 2-3 مرات ولكن بعد ذلك بدأت بالفشل (دائمًا مع نفس الخطأ ). هل من الممكن ألا يكون السلينيوم / مفك الويب مفصولًا / مغلقًا جيدًا عند انتهاء الاختبار؟ ربما هناك بعض الاتصالات المفتوحة من التشغيلات السابقة؟
لقد أجريت اختبارات مختلفة أخرى (لأنني أختبر شبكات مختلفة) وقمت بتهيئة وظائف جديدة في جينكينز ووجدت نفس المشكلة. الاختبارات الأولى تعمل بشكل جيد ثم بدأت بالفشل مع ESOCKETTIMEDOUT.
مرة أخرى ، يمكنني إجراء تلك الاختبارات محليًا دون مشاكل وعدة مرات.
بالنسبة لأولئك الذين يمكن أن يواجهوا نفس المشكلة ، لقد جربت للتو مع chrome مقطوعة الرأس وهو يعمل بشكل جيد منذ عدة أيام: D لذا أضف chromeOption "مقطوعة الرأس" في قدراتك ومعرفة ما إذا كان يعمل.
مرحبًا LaiaPR ، لدي نفس المشكلة اليوم. كما اقترحت ، فإن إضافة خيار "مقطوعة الرأس" يحل المشكلة. شكرا!
التعليق الأكثر فائدة
بالنسبة لأولئك الذين يمكن أن يواجهوا نفس المشكلة ، لقد جربت للتو مع chrome مقطوعة الرأس وهو يعمل بشكل جيد منذ عدة أيام: D لذا أضف chromeOption "مقطوعة الرأس" في قدراتك ومعرفة ما إذا كان يعمل.