JenkinsのVncRecorder Pluginを使ってみる

JenkinsのVncRecorder Pluginを使ってみます。

Ubuntu 14.04で動作させています。

Debian 8ではjenkinsユーザをvideoグループに追加する必要があるようです。


1 VncRecorder Pluginとは

テスト実行時の画面を録画するプラグインです。

Xvnc Pluginをインストールしておくと必要があります。

Xvnc Pluginのインストール方法についてはこちらを参照して下さい。

2 VncRecorder Pluginのインストール

プラグインの管理画面からインストールします。

Jenkinsの管理 -> プラグインの管理 -> 利用可能

https://dl-web.dropbox.com/s/lc9ilj18j859066/0001_XvncRecorder_Install.png

3 pyvnc2swfのインストール

VncRecorder PluginはMaster側のvnc2swfコマンドでVNCサーバの画面を録画するので、Master側のマシンにpyvnc2swfをインストールします。

$ sudo apt-get install -y pyvnc2swf

上記に加え、Debian 8ではjenkinsユーザをvideoグループに追加する必要があります。

追加後にjenkinsを再起動します。

$ sudo gpasswd -a jenkins video
$ sudo systemctl restart jenkins.service

4 システムの設定

システムの設定画面でVncRecorderのパスを設定します。

デフォルトでは/Set/your/path/for/vnc2swfになっているので変更が必要です(pyvnc2swfを先にインストールした場合は適切なパスになってるかもしれません)。

Jenkinsの管理 -> システムの設定 -> VncRecorder

https://dl-web.dropbox.com/s/pck40xpntu82nat/0002_vnc2swf_path.png

5 ジョブの設定

ジョブの設定画面でvnc2swfのオプションを設定します。

https://dl-web.dropbox.com/s/hkx245z8vtatiq2/0003_Job_Setting.png

Xvnc Pluginで動的にディスプレイ番号を設定している場合は$DISPLAYでディスプレイ番号を取得する必要があります。

 

Slaveのホスト名がslaveの場合は以下で接続できます。

slave$DISPLAY

Slave側の画面を録画する場合はSlave側で使っているパスワードファイルをMaster側のvnc2swfに渡すようにして下さい(パスワード文字列が同じでも異なるパスワードファイルになるようです)。

6 ジョブの実行

コンソール出力で以下のようなログが出力されます。

Video from 2015-06-23 T 04:08:33 to 2015-06-23 T 04:10:13

7 成果物

動画を保存したswfファイルと動画表示用ページのHTMLが生成されます。

https://dl-web.dropbox.com/s/9j18z0g6n5ip57e/0004_Product.png

動画表示ページは以下の通りになりました。動画を進めていくと、GUIアプリケーションのウィンドウが表示されます。

https://dl-web.dropbox.com/s/ythongj7d6k4b18/0005_HTML.png