SikuliとJenkins | 所詮わりばし

所詮わりばし

テーマとか 特にないっす 思ったこと ダラダラ書きます 所詮、わりばしですから・・・


業務の備忘録



---------------------------------------




SikuliとJenkinsを使った


ソフトの自動試験 (Windows環境)





これを実現するにあたり 難しかったのが



JenkinsからのSikuliの実行方法でした





何も考えず


フツーにJenkins上でSikuliの実行を記述すると




[error] Location: outside any screen (15549760, 15549760) - subsequent actions might not work as expected




のようなエラーが出てしまい


うまいこと動作してくれません・・・





で 海外のサイト等 いろいろ調べてみたら


このエラーの意味と解決法が分かりました




----------------------------




先に 解決法からいきます



手段は2つあって




① タスクスケジューラを仲介させる



② Jenkinsを サービスによる自動起動ではなく

  手動で起動させる





①については


こちらのサイト に詳しく書かれています






②は 以下の通り



 (1) 「コントロールパネル」 → 「管理ツール」 → 「サービス」 にて


   Jenkinsのスタートアップの種類を 「手動」か「無効」に設定する




 (2) コマンドプロンプトで Jenkinsのインストールフォルダにて


   java -jar jenkins.war




 (※) Jenkinsを自動起動させたいなら

    (2)をバッチにして スタートアップに登録すればOK




です



----------------------------------------------





元の方法でエラーが出ていた理由ですが





Jenkinsは デフォルトの状態だと


Windowsの「サービス」により自動起動されるよう

設定されています




この「サービス」というのがクセ者で



ユーザーがログインしていない状態でも

動作することを念頭に置かれた機能であり




ユーザーのセッションとは別の


「サービス」専用のセッションで動作するので




Sikuliのような GUIの絡むアプリケーションを

「サービス」で起動させると



ユーザーの見ている画面とは別の


「サービス」専用の裏画面で動作してしまうのだそうです





------------------------------





Sikuliに関わらずGUIの絡むものなら全てに当てはまることなので


覚えておくとよさそうですね