2017-03-23 1 views
0

私の分度器テストは、最近私のdevマシン/ envで再現できないエラーで動作しなくなりました。 JenkinsはVMWare(ESxI)環境で動作するマシンを構築/テストします。WMWareで動作している投光子/セレンが失敗しました:不明なエラー:ページがクラッシュしたためセッションが削除されました

エラーoccuringはこれです:

18:05:17 [18:05:09] I/launcher - Running 1 instances of WebDriver 
18:05:17 [18:05:09] I/hosted - Using the selenium server at http://localhost:4444/wd/hub 
18:05:17 Started 
18:05:17 
18:05:17 JASMINE STARTING: 
18:05:17 
18:05:17 
18:05:17 » Main App Test 
18:05:17 [31mF[0m ✗ App Module Test (1 s) 
18:05:17  - Failed: unknown error: session deleted because of page crash 
18:05:17 from unknown error: cannot determine loading status 
18:05:17 from tab crashed 
18:05:17 (Session info: content shell=) 
18:05:17 (Driver info: chromedriver=2.28.455520 (cc17746adff54984afff480136733114c6b3704b),platform=Windows NT 6.3.9600 x86_64) (WARNING: The server did not provide any stacktrace information) 
18:05:17 Command duration or timeout: 266 milliseconds 
18:05:17 Build info: version: '3.3.1', revision: '5234b32', time: '2017-03-10 09:04:52 -0800' 
18:05:17 System info: host: 'xxxxxxxxxxxxxxx', ip: '99.99.99.99', os.name: 'Windows Server 2012 R2', os.arch: 'amd64', os.version: '6.3', java.version: '1.8.0_121' 
18:05:17 Driver info: org.openqa.selenium.chrome.ChromeDriver 
18:05:17 Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.28.455520 (cc17746adff54984afff480136733114c6b3704b), userDataDir=C:\Users\RABUIL~1\AppData\Local\Temp\scoped_dir6264_14292}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=, platform=WIN8_1, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}] 
18:05:17 Session ID: 8ba3690dfc0ab400933236ae8eefd5ee 

は私がフォーラムを精練し、ドッキングウィンドウとtmuxの構成で発生したこのエラーに関連する他のいくつかの問題が見つかりました。解決の本質は、環境を調整して、Chromeドライバのために余分なリソースをアクセスできるようにして、作業を完了できるようにすることでした。 (リストに行く)

http://borkweb.com/story/chromedriver-doesnt-run-in-tmux

Selenium: unknown error: session deleted because of page crash

Is there any workaround for "session deleted because of page crash" Chrome error on Travis CI?

https://github.com/angular/protractor/issues/731

...イライラさせられる何

が、これはそのテスト・セットであるということです。たとえば、何週間も働いていて、今はクラッシュしています。 は、VMWare以外の環境では失敗しません。助けてくれる手がかりをまとめようとしています。誰もが、tmuxやdockerの状況で見られる問題に似た、Windows WMWare環境で動作するChromeドライバの問題かもしれないと思いますか?

私はここに(も解決せず)、これは他の記事に可能性があることのいくつかのヒントを参照してください。私が言ったように

https://sqa.stackexchange.com/questions/22707/selenium-chromedriver-in-virtual-machine

が、私はstackoverflowのと他のフォーラムを精練とするために少しを見つけました明確な方向に私を指差す。

+0

同じ問題が発生し、数か月間完全に動作していたテストは、VMWare上で実行され、ランダムにクラッシュし始めました。あなたはその問題を解決しましたか? – jvrnt

答えて

0

最後に、前の回答は、テストマシンでprotractorseleniumソフトウェアをインストールしたままにすることができる場合にのみ有益です。さらに、page crashのエラーは、リソースやマシンの遅さがビルドとテストの操作を妨害しているような状況でも発生するようです。私たちの目標は、夜間のビルドプロセスですべてのプロセス(ビルド、パッケージ化、単体テスト、エンドツーエンドのテスト)を完了させることでした。マシンと分度器の両方を調整しながら多くの論争をした結果、各ビルド後にビルドマシンを完全にクリーンアップすることが優先されることになりました(エンドツーエンドのテスト/分度器で使用されるツールの削除を含む)。

これは、あなたの目標が私たちと同じであれば、問題の第2の解決策です(上記の解決策1、他の人にとっては良いことが分かります)。

  • STEP 1:configファイルでdirectConnectオプションを使用するように分度器を設定します。
  • ステップ2:パッケージの一部として分度器をローカルにインストールします。
  • ステップ3:インストールのポストステップとしてwebdriverを更新します。
  • ステップ4:グローバルインストールではなく、ローカルプロジェクトnode_modulesから分度器を実行します。

STEP 1を達成するために、あなたのprotractor.conf.jsdirecConnectオプションのように、オンにしておく必要があります

exports.config = { 
    directConnect: true, 
... 
... 
... 

のSTEP 2-4を達成するために、あなたのpackage.jsonファイルは、以下の2行とscriptsセクションを持つ必要がありますその中に(あなたがスクリプトに必要な任意の他に加えて):

"scripts": { 
    "postinstall": "TIMEOUT /T 10 && node ./node_modules/protractor/bin/webdriver-manager update", 
    "test": "TIMEOUT /T 10 && node ./node_modules/protractor/bin/protractor \"protractor.conf.js\"" 
    }, 

あなたのdevDependenciesセクションファイルが分度器がローカルにインストールされている必要があり、のように:

"devDependencies": { 
... 
... 
    "protractor": "5.1.1", 
... 
... 
    } 

これらの変更を行って以来、私たちはもはや、オリジナルの「ページのクラッシュ」エラーですべての問題を持っていません。

0

これは、問題を回避したこの問題の回避策を見つけるための最初の試みでしたが、元のコンテキストではクラッシュ自体の解決策のようには見えませんでした。まず、いくつかの簡単な背景。

"scripts": { 
    "preinstall": "npm install -g protractor", 
    "postinstall": "webdriver-manager update", 
    "pretest": "start \"SeleniumServer\" webdriver-manager start", 
    "test": "TIMEOUT /T 10 && protractor \"protractor.conf.js\"", 
    "posttest": "TIMEOUT /T 10 && webdriver-manager shutdown" 
    }, 

(私たちは、Windows上で実行されているので、これらの正確なpackage.jsonのスクリプトは、お使いのOSと若干異なる場合があります):私たちの分度器プロジェクトのpackage.jsonは以下が含まれています。

ビルドプロセスでnpm testが完了したら、npm install -g protractorを実行して、エンドツーエンドテストとそのフットプリントをビルドマシンでまとめます。このアプローチをとった理由は、ビルダーマシン(この分度器プロジェクトが実行されていたビルドマシン)が分度器からきれいに保たれるようにするためです。私たちはそれが環境に影響を与えたくないからです。

私たちが採用した回避策は、今度は分度器をマシンに完全にインストールして、ビルドプロセスにインストール/アンインストールを含めないようにすることです。私たちのpackage.jsonスクリプトセクションの関連するセクションは次のようになりました。

"scripts": { 
    "pretest": "start \"SeleniumServer\" webdriver-manager start", 
    "test": "TIMEOUT /T 10 && protractor \"protractor.conf.js\"", 
    "posttest": "TIMEOUT /T 10 && webdriver-manager shutdown" 
    }, 

は第二に、私たちは(あなたが見ることができるように)追加のテストが完全にシャットダウンするように、完全に、その後、セレンサーバーを完了するために、完全に起動するセレンサーバーを待つタイムアウト。コマンドのpretest/test/posttest同期のフックされたライフサイクルで与えられた待ち時間は、ウィンドウの実際の実行方法を考慮していないので、startコマンドを使用して別のウィンドウを起動し、独自のネイティブTIMEOUTを呼び出す必要がありました。

最終的に見つかったのは、VM Wareがビルドプロセスマシンでリソースを予期せず制限するように見えることでした。そして、タスクをコンポーネント化して、分度器テストをハングアップまたはスローダウンさせる余分なもの彼らが実行されているとき。

何らかの理由で、テストを実行する直前に分度器をインストールすることは、定期的に失敗するような方法のように思えました。私たちは、その事実を裏づけて考えると危険ではありませんが、もともとテストパッケージを使ってビルドマシンを汚していないようにしました。

他の人にも役立ちます。

関連する問題