ハドソンスレーブでSeleniumテストを実行したいと思います。
Seleniumを実行するスレーブ(つまりマシン)はUbuntu10.04です。
したがって、Gnomeがあります。 Seleniumを実行するにはFirefoxが必要です。
Hudsonは現在、Ubuntuマシンへのssh接続を作成し、そこでSeleniumを起動しています。 SeleniumはFirefoxを起動しようとします。
そして今それは非難します:
エラー:ディスプレイを開けません
'ssh Shell'がXサーバーから表示を取得するには何をする必要がありますか?
リモートマシンでssh X11転送が有効になっていることを確認します。
$ grep X11 /etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
$
リモートマシンに接続するには、ssh -X user@remote_machine
を使用します。リモートマシンで別のユーザーを使用してXクライアントを起動している場合は、xauth list
を使用してsshユーザーの現在の資格情報を取得してから、xauth add
を使用して使用するユーザーに資格情報を追加します須藤/ su。
read -p 'Username: ' u;Sudo -H -u $u xauth add $(xauth list|grep :$(echo ${DISPLAY: -4:2}));Sudo su - $u
質問が私が思うものなら
ssh testuser@ubuntuhost firefox --display :0 -no-remote
buntuhostでFirefoxを起動し、testuserがbuntuhostに既にログオンしていると仮定して、そのマシンに表示します。
私はSelenium、またはあなたが正確にテストしようとしているもの(パフォーマンス、表示の正確さ、または単にいくつかのJavaScriptからの成功の戻り値)を知りませんが、「実際の」Xサーバー、つまり実際にそれを必要としないかもしれませんUbuntuホストのモニターにが表示されます。 Xvfbはここで役立つかもしれませんが、それは元の質問の範囲を超えています...
X転送を有効にし、Xサーバーをローカルで実行する必要があります。パス -X
または-Y
からssh
へ。
ssh -X root @myserverまたはそのようなもの
Sshトンネルを介してXを転送する必要があります。これを試してください:
ssh -X Host_IP
ログインしたら、ターミナルでFirefoxを起動すると、Xサーバーがローカルマシンに転送されます。