Webdriverio: Jenkinsでテストを開始するときのESOCKETTIMEDOUT

作成日 2018年04月05日  ·  4コメント  ·  ソース: webdriverio/webdriverio

問題

Jenkinsでテストを数回実行できません。 ローカルマシンでテストを数回実行でき、常に正常に動作しますが、JenkinsでESOCKETTIMEDOUTエラーが発生します。

環境

  • WebdriverIOバージョン:4.10.1で発生し、4.12.0に更新されました
  • Node.jsバージョン:8.9.1
  • スタンドアロンモードまたはwdioテストランナー:スタンドアロン
  • wdio testrunnerの場合、同期または非同期テストを実行します:sync
  • 使用される追加のwdioパッケージ(該当する場合):キュウリのボイラープレートを使用しています

詳細

このエラーが発生すると、回復できません(Jenkinsでジョブを何度も実行すると、常に同じエラーが発生します)。 しかし、私はそれをエラーなしで2〜3回実行することができました(それで、私はそれが機能するのを見ました)。
テストはChromeで開始されます。 JenkinsスレーブはMacMiniです。 セレンのホストとポートを提供しても問題は解決しません。

Selenium / 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の仕事は非常に簡単です。

  • 特定のディレクトリに移動
  • ノードバージョンの設定
  • ヤーンインストール
  • 次のコマンドでテストを開始します:

最も参考になるコメント

同じ問題が発生する可能性がある人のために、私はヘッドレスクロームを試してみましたが、数日前は正常に機能しています:Dしたがって、機能に「ヘッドレス」chromeOptionを追加して、機能するかどうかを確認してください。

全てのコメント4件

WebdriverIOがWebDriverバックエンド(おそらくChromedriver)への接続を確立できないようです。 これには多くの理由が考えられますが、WebdriverIOに関連している可能性は低いです。 ドライバーの設定に問題があります。 たぶんあなたは同時に多くのテストを実行しますか? WebdriverIOでこれを修正するためにできることは何もありません。 そのため、これを閉じます。 お気軽にサポートにご連絡くださいGitterさらに質問がある場合。

こんにちは@ christian-bromann迅速な対応に感謝します。

1つのテスト(1つの機能)とログインしか実行していないので心配です。また、前述したように、Jenkinsで2〜3回動作することを確認できましたが、失敗し始めました(常に同じエラーが発生します)。 )。 テストの終了時に、セレン/ウェブドライバーが十分に切断/閉じられていない可能性はありますか? たぶん、以前の実行からいくつかの開いた接続がありますか?

他のさまざまなテストを実行し(さまざまなWebをテストしているため)、Jenkinsで新しいジョブを構成しましたが、同じ問題が見つかりました。 最初のテストは正常に機能し、その後ESOCKETTIMEDOUTで失敗し始めました。

繰り返しになりますが、これらのテストはローカルで問題なく数回実行できます。

同じ問題が発生する可能性がある人のために、私はヘッドレスクロームを試してみましたが、数日前は正常に機能しています:Dしたがって、機能に「ヘッドレス」chromeOptionを追加して、機能するかどうかを確認してください。

こんにちは@LaiaPR 、私は今日同じ問題を抱えていました。 あなたが提案したように、「ヘッドレス」オプションを追加すると問題が解決します。 ありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価