リモートデスクトップ接続なしでJenkins WindowsスレーブでGUIテストを実行するにはどうすればいいですか? 質問する

リモートデスクトップ接続なしでJenkins WindowsスレーブでGUIテストを実行するにはどうすればいいですか? 質問する

私はWindows 7にJenkinsエージェントをセットアップし、LinuxにJenkinsサーバーをセットアップしています。WindowsエージェントでGUIテストを実行しています。リモートデスクトップ接続が接続されている場合は正常に実行されますが、そうでない場合は失敗します。このリンクを見つけました。Windows 上の Jenkins と RDC なしの GUI テスト

しかし、そこで提供されている解決策はかなり漠然としています。唯一の解決策は、何らかの方法で Jenkins サーバーにリモート デスクトップ接続を常に開いたままにすることのようです。しかし、そうするためのオプションが見つかりません。誰かこの問題を解決する方法を明確に教えてもらえませんか?

とても有難い!

ベストアンサー1

テストを適切に実行するには、スレーブ マシンをデスクトップにする必要があります。私たちも同じ問題を抱えていました。

解決策は、テスト マシンを起動してデスクトップに自動ログオンすることです。デスクトップが使用可能になった後にのみテストが開始されるように、ユーザー ログイン時に実行されるように設定されたスケジュールされたタスクを追加しました。このタスクは、Java Web Start を介して Jenkins スレーブを起動します。こうすることで、デスクトップが実行中の場合のみ Jenkins はスレーブを認識するようになります。その後、すべて正常に動作しました。

これは、リンク先の質問に対する最も優れた回答であり、何をすべきかが非常に明確です。セットアップ全体は Jenkins の外部で行われます。Jason Swager は、ユーザーが Windows デスクトップ マシンにログインし、ユーザー セッションで Jenkins スレーブを起動するプロセスを自動化する方法について説明しました。

それでは、ステップバイステップで説明します。

1. GUIが利用可能であることを確認する

解決策は、テストマシンを起動してデスクトップに自動ログオンさせることでした。

Windows の起動時に特定のユーザーが自動的にログインするように標準の Windows デスクトップを構成します。こうすることで、誰もデスクトップに物理的にログインする必要がなくなります。(Windows 7で自動ログオンを有効にする方法

2. Jenkinsスレーブを起動する

このユーザー設定内で Jenkins スレーブを起動する必要があります。そうしないと、Jenkins スレーブは Windows UI コンポーネントにアクセスできなくなります (つまり、デスクトップと対話できなくなります)。

デスクトップが利用可能になった後にのみテストが開始されるように、ユーザー ログイン時に実行するように設定されたスケジュールされたタスクを追加し、Java Web Start 経由で Jenkins スレーブを起動するようにしました。

だからあなたはスケジュールされたタスクを作成するそして、それを設定してJava Web Start を使用した Jenkins クライアント

3. 使う

こうすることで、デスクトップが稼働しているときのみ Jenkins はスレーブを認識するようになります。その後はすべて正常に動作しました。

スレーブがオンラインになると、それを使用して UI テストを実行できます。

おすすめ記事