2016-11-17 17 views
1

protractorプログラムをJenkinsから実行しようとしていますが、Jenkinsにはディスプレイがないため、ヘッドレスモードでChromeを実行する必要があります。 chromeヘッドレスモードを持っていないので、私はxvfbを使用して表示をエミュレートする必要があります。Xvfbを使用してジェンキンスでヘッドレスのクロームを実行するにはどうすればよいですか?

私はチュートリアルを続けましたが、私が分度器を実行すると、クロムがクラッシュします。ここで

は私が持っているものです。

ビルド - シェル(ジェンキンスジョブで)

#emulate display 
echo "Starting xvfb on :99..." 
Xvfb -ac :99 -screen 0 1280x1024x16 & 
export DISPLAY=:99 

echo "Checking that xvfb started ok..." 
xdpyinfo -display :99 >/dev/null 2>&1 && echo "xvfb is using :99" || echo "xvfb is not using :99, it's free." 

#now start my program 
xvfb-run -a --server-args='-screen 0, 1024x768x16' protractor conf.js 

を実行し、ここで私の出力です:

+ echo Starting xvfb on :99... 
Starting xvfb on :99... 
+ export DISPLAY=:99 
+ echo Checking that xvfb started ok... 
Checking that xvfb started ok... 
+ xdpyinfo -display :99 
+ Xvfb -ac :99 -screen 0 1280x1024x16 
+ echo xvfb is using :99 
xvfb is using :99 

[22:26:25] I/local - Starting selenium standalone server... 
[22:26:25] I/launcher - Running 1 instances of WebDriver 
[22:26:26] I/local - Selenium standalone server started at http://10.0.0.82:54385/wd/hub 
[22:27:26] E/launcher - unknown error: Chrome failed to start: crashed 
    (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 4.4.0-47-generic x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 60.16 seconds 
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03' 
System info: host: 'ip-10-0-0-82', ip: '10.0.0.82', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-47-generic', java.version: '1.8.0_111' 
Driver info: org.openqa.selenium.chrome.ChromeDriver 
[22:27:26] E/launcher - WebDriverError: unknown error: Chrome failed to start: crashed 
    (Driver info: chromedriver=2.24.417424 (c5c5ea873213ee72e3d0929b47482681555340c3),platform=Linux 4.4.0-47-generic x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 60.16 seconds 
Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03' 
System info: host: 'ip-10-0-0-82', ip: '10.0.0.82', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-47-generic', java.version: '1.8.0_111' 
Driver info: org.openqa.selenium.chrome.ChromeDriver 
    at WebDriverError (/jenkins/workspace/myjob/src/js/node_modules/selenium-webdriver/lib/error.js:27:5) 
    at Object.checkLegacyResponse (/jenkins/workspace/myjob/src/js/node_modules/selenium-webdriver/lib/error.js:639:15) 
    at parseHttpResponse (/jenkins/workspace/myjob/src/js/node_modules/selenium-webdriver/http/index.js:538:13) 
    at client_.send.then.response (/jenkins/workspace/myjob/src/js/node_modules/selenium-webdriver/http/index.js:472:11) 
    at ManagedPromise.invokeCallback_ (/jenkins/workspace/myjob/src/js/node_modules/selenium-webdriver/lib/promise.js:1379:14) 
    at TaskQueue.execute_ (/jenkins/workspace/myjob/src/js/node_modules/selenium-webdriver/lib/promise.js:2913:14) 
    at TaskQueue.executeNext_ (/jenkins/workspace/myjob/src/js/node_modules/selenium-webdriver/lib/promise.js:2896:21) 
    at asyncRun (/jenkins/workspace/myjob/src/js/node_modules/selenium-webdriver/lib/promise.js:2820:25) 
    at /jenkins/workspace/myjob/src/js/node_modules/selenium-webdriver/lib/promise.js:639:7 
    at process._tickCallback (internal/process/next_tick.js:103:7) 
From: Task: WebDriver.createSession() 
    at Function.createSession (/jenkins/workspace/myjob/src/js/node_modules/selenium-webdriver/lib/webdriver.js:329:24) 
    at Builder.build (/jenkins/workspace/myjob/src/js/node_modules/selenium-webdriver/builder.js:458:24) 
    at Local.DriverProvider.getNewDriver (/jenkins/workspace/myjob/src/js/node_modules/protractor/built/driverProviders/driverProvider.js:37:33) 
    at Runner.createBrowser (/jenkins/workspace/myjob/src/js/node_modules/protractor/built/runner.js:198:43) 
    at /jenkins/workspace/myjob/src/js/node_modules/protractor/built/runner.js:277:30 
    at _fulfilled (/jenkins/workspace/myjob/src/js/node_modules/q/q.js:834:54) 
    at self.promiseDispatch.done (/jenkins/workspace/myjob/src/js/node_modules/q/q.js:863:30) 
    at Promise.promise.promiseDispatch (/jenkins/workspace/myjob/src/js/node_modules/q/q.js:796:13) 
    at /jenkins/workspace/myjob/src/js/node_modules/q/q.js:604:44 
    at runSingle (/jenkins/workspace/myjob/src/js/node_modules/q/q.js:137:13) 
[22:27:26] E/launcher - Process exited with error code 199 

私はChrome failed to start: crashedを得続けますすべて私は試しました...これは、私がxvfbをどのように起動または設定しているかに問題がありますか?それとも私の分度器のコードに問題がありますか? stacktraceは私を助けてくれませんx.x

+1

見てください:https://sites.google.com/a/chromium.org/chromedriver/help/chrome-doesn-t-start –

+2

私は間違いなく、クロムがどこかで開こうとしていると確信していますDISPLAY =:99ではありません。これまで私は 'webdriver manager start'を実行する場所で' export DISPLAY =:99'を実行しなければなりませんでした。ダイレクトコネクトを使用している場合は、その環境変数でデーモンとしてクロムを起動する必要があります。 – mvndaai

+0

ありがとう@mvndaai!私はそれを試してみましょう。 – Kayvar

答えて

2

私はJenkins Xvfb Pluginを使用することをお勧めします。あまりにも多くの設定を混乱させることなく、うまく動作します。

ジョブを設定するには、xvfbオプションをクリックしてジョブの先頭で実行し、ジョブの最後にxvfbをシャットダウンします。これを設定したら、xvfbのものを使わずにプロトラクターコマンドを実行できます:protractor conf.js

+0

インストールが完了しましたプラグインとプラグインが正常に動作していますが、クロムを起動すると再びクラッシュします:(私はクロムクラッシュについて別の質問をするつもりですが、xvfbは現在動作しています – Kayvar

+0

新しい質問:http://stackoverflow.com/questions/40921546/chromedriver-keep-crashing-on-jenkins-selenium-job-webdrivererror-chrome-fai – Kayvar

+0

コメントを追加しました!:) – cnishina

関連する問題