質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Q&A

解決済

1回答

4496閲覧

Jenkinsからコマンドでcromedriverを起動したい

akakuta

総合スコア11

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

Jenkins

Jenkinsとは、Apache TomcatなどのServletで動作しているサーバーベースシステムです。Jenkinsはオープンソースであり、LInux,Mac OS X,Windows,Solaris,FreeBSDとOpenBSDのためのパッケージがあります。

JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

0グッド

0クリップ

投稿2016/09/13 12:51

お世話になっております。
Jenkinsからcromedriverを起動させたいのですが、セッション?が原因でエラーになってしまいます。
ローカルでの実行まではうまく行っているので、
Jenkinsアカウントへの権限設定やjarファイルの置き場所、環境設定…等の問題なのではと思っています。
不足していると思われる設定などをご助言いただけますと幸いです。

###前提・実現したいこと
ローカル実装したJunitプログラムを、javaコマンドでJenkinsに実行させるのですが、
Jenkinsからの実行だと、driver.get( "URL" )などの処理時にエラーになってしまいます。

最終的には、Jenkinsで、コマンド入力のJunitを定期実行させたい
Java + Selenium WebDriverで、webページのリンクチェックを行うプログラムを実装したので、
それをJenkinsからjava(Junit)コマンドで定期実行したいと思っています。
(svn・gitなどの連携はせず、シェルスクリプト指定による定期実行部分だけ利用したい)

###発生している問題・エラーメッセージ
ビルドします。 ワークスペース: /Users/Shared/Jenkins/Home/workspace/"JOB名"

Xvfb starting$ /opt/X11/bin//Xvfb :2 -screen 0 1024x768x24 -fbdir /Users/Shared/Jenkins/Home/xvfb-45-7668804557589957220.fbdir
[3rd_test_job] $ /bin/sh -xe /Users/Shared/Jenkins/tmp/hudson582682443337739343.sh

  • java org.junit.runner.JUnitCore "javaプログラム名"

Picked up _JAVA_OPTIONS: -Dfile.encoding=8859_1
JUnit version 4.11
Starting ChromeDriver 2.22.397929 (fb72fb249a903a0b1041ea71eb4c8b3fa0d9be5a) on port 33308
Only local connections are allowed.
9 13, 2016 8:52:44 ?? org.openqa.selenium.remote.ProtocolHandshake createSession
??: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
AVF:PluginConnect: Got an error after dlopen dlopen(/System/Library/Extensions/AppleIntelHD3000GraphicsVADriver.bundle/Contents/MacOS/AppleIntelHD3000GraphicsVADriver, 1): no suitable image found. Did find:
/System/Library/Extensions/AppleIntelHD3000GraphicsVADriver.bundle/Contents/MacOS/AppleIntelHD3000GraphicsVADriver: stat() failed with errno=1
GVA error: Failed to connect to the Intel plugin
AVDCreateGPUAccelerator: Error loading GPU renderer

9 13, 2016 8:53:45 ?? org.openqa.selenium.remote.ProtocolHandshake createSession
??: Detected dialect: OSS
.E
Time: 61.353
There was 1 failure:

  1. Test("プログラム名")

org.openqa.selenium.NoSuchSessionException: no such session
(Driver info: chromedriver=2.22.397929 (fb72fb249a903a0b1041ea71eb4c8b3fa0d9be5a),platform=Mac OS X 10.10.5 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 4 milliseconds
Build info: version: '3.0.0-beta3', revision: 'c7b525d', time: '2016-09-01 14:57:03 -0700'
System info: host: '"MAC名".local', ip: '...*', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.10.5', java.version: '1.8.0_101'
Driver info: org.openqa.selenium.chrome.ChromeDriver

Capabilities [{message=unknown error: Chrome failed to start: crashed ←ここ※※※

(Driver info: chromedriver=2.22.397929 (fb72fb249a903a0b1041ea71eb4c8b3fa0d9be5a),platform=Mac OS X 10.10.5 x86_64), platform=ANY}]
Session ID: **********
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:631)
at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:323)
at "プログラム名".Test(Test.java:216) ←ここ※※※
(略)
FAILURES!!!
Tests run: 1, Failures: 1

###該当のソースコード
//Chromedriver設定箇所
final String chromeDriverPath = "/opt/chromedriver/chromedriver";
System.setProperty("webdriver.chrome.driver", chromeDriverPath);
driver = new ChromeDriver();

###試したこと
・Xvfb プラグイン追加
・Jenkinsからのchromeの単体実行(失敗)
・selenium-serverパス登録
・chromedriver等の必要ファイル・フォルダにjenkinsユーザの権限付与
・Jenkinsから、シェルスクリプトでJunitの実行までは成功

###補足情報(言語/FW/ツール等のバージョンなど)
●実行環境:mac mini OSX Yosemite(10.10.5)
●Juit:4.11
●JDK:1.8.0.101

●Jenkins JOB概要:シェルスクリプト:登録コマンド↓
java org.junit.runner.JUnitCore プログラム名

●プログラムは、JenkinsのWorkSpace↓に置いています。(クラスパスの指定がうまくできなかったため…)
/Users/Shared/Jenkins/Home/workspace/"Jobフォルダ"

●Jenkinsに設定したCLASSPATH、およびjarなどの置き場所↓
.
:/usr/share/java/junit.jar
:/usr/share/java/hamcrest-core-1.3.jar
:/Applications/Google\ Chrome.app/Contents/MacOS/
:/opt/chromedriver/selenium-server-standalone-3.0.0-beta3.jar
:/opt/chromedriver/selenium-java-2.42.2.jar
:/opt/chromedriver/chromedriver
:/opt/X11/bin/Xvfb

長文で恐縮ですが
どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ジョブ実行ユーザの権限問題ではないでしょうか。

権限に問題がある場合は、テストケースを実行可能なユーザでJenkins自体を実行するか、JNLPなどでノードのログインユーザで実行する必要があると思います。

Jenkinsでジョブを実行した時、シェルを実行している権限は?

Jenkins をOS X のログインユーザー権限のデーモンで自動起動しておく設定

投稿2016/09/18 08:49

Tipo

総合スコア239

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akakuta

2016/11/01 05:32

ご回答ありがとうございました。 解決には至れていないのですが、非常に参考になりました。 設計から見直してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問