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

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

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

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

解決済

1回答

2514閲覧

JenkinsからKatalon Chromedriverが異常終了する

mno

総合スコア35

Jenkins

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

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2019/06/12 06:57

お世話になっております。
CI/CDツールのJenkinsからKatalonを起動し、自動でテスト実行を行いたいです。

まず、Katalonで「openBrowser('https://www.google.co.jp/')」のみのテストを作成し、
コマンドプロンプトから以下のように実行しました。

dos

1C:\KatalonStudio\katalon.exe -noSplash -runMode=console 2 -projectPath="C:/Project/Test" -reportFolder="Reports" 3 -reportFileName="report" -retry=0 -testSuitePath="Test Suites/Test2" 4 -browserType="Chrome (headless)"

→正常終了します。
Reportsフォルダのログも正常終了しています。

次に、Jenkinsのバッチ実行にて同じコマンドを実行すると、Reportsフォルダに
以下のようなログが出力され、失敗します。

com.kms.katalon.core.exception.StepFailedException: Unable to open browser with url: 'https://www.google.co.jp/' (Root cause: com.kms.katalon.core.exception.StepFailedException: Unable to open browser with url: 'https://www.google.co.jp/' Caused by: org.openqa.selenium.WebDriverException: unknown error: unable to discover open pages Driver info: driver.version: CChromeDriver

タスクスケジューラからの起動でも、同じ事象になります。
java、Jenkins、Katalon、Chromeの実行ユーザは、全て自分になっています。
状況から推測すると、windowsのデスクトップ環境からでないと起動失敗するように思われます。

ChromeDriverのフォルダに環境変数PATHを通す設定は適用済みです。
「C:\Windows\SysWOW64\config\systemprofile\Desktop」は作成しました。

解決策やヒントなどご存知でしたらご教示いただけないでしょうか。


環境
Chrome:75
Chrome Driver:75.0.3770.8 (最新)
Katalon Studio: 6.1.5 (version5でも同事象になります)
OS:Windows Server 2016 64bit
jenkinsのJRE:8
jenkins、Katalonのユーザ:ログインユーザと一致
CPU/メモリ/ハードディスクは十分量あります。
Chrome DriverはChromeバージョンに依存するため、ダウングレードは行っていません。

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

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

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

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

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

guest

回答1

0

自己解決

推測を含みますが、起動失敗の原因がわかりました。
chromedriverは、フォアグラウンドプロセス/バックグラウンドプロセスの、
バックグラウンドプロセスに対応していないようです。
これはFirefoxも同様のようです。

タスクスケジューラには、以下2つの起動オプションがあります。
・ユーザーがログオンしているときのみ実行する
・ユーザーがログオンしているかどうかにかかわらず実行する

前者だとフォアグラウンドプロセスで起動、後者だとバックグラウンドプロセスで起動します。
そのため、タスクスケジューラで前者を指定して起動すると正常終了しました。

また、未検証ですが、Jenkinsをサービス化せずに、コマンドプロンプトから手動起動しても
同じようにフォアグラウンドプロセスになるようです。


よって、以下のような対処を行いました。
Katalon起動を前述のオプションで登録する。
Jenkinsのバッチ実行にて、以下のコマンドを実行する。
「schtasks /run /tn (タスク名)」

失敗時(エラーコードから判定する)、バッチからメールを送るようにする。

投稿2019/06/15 00:52

mno

総合スコア35

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問