ジェンキンス+セレニウムを試してみる

VB Tips And Sample(HOME)(VB.NET Sample インデックス)

ジェンキンス+セレニウムを試してみる



最近はやり?のテストツールを試してみる
ジェンキンス+セレニウムを使用。
簡単に説明すると、

ジェンキンスはテストプロジェクトを作り実行する。
ブラウザ上のGUIで操作できる。
しかし、テストプロジェクトを作りはするが、テストコードは作らない。
テストコードはセレニウム用、PHPUnit用等に合わせて別途作る必要がある(面倒ですね)。
情報は断片的にWEBに転がっているが、いったいどれが正しいのやら?
という状態。

セレニウムは、WEBブラウザを動かして、入力、ボタン押し、画面結果の確認等を自動でテストできる。
要するに、クライアントサイド・WEBブラウザを実際動かしてのテストを、自動でやってくれる。
動かし方は、ジェンキンスに設定出る場合もあるし、コマンドで起動する場合もあり。
その動きは当然プログラムする必要がある。
プログラムは面倒しいので、テストプログラムを自動的に記録作成してくれるSelenium IDEというツールがある。

ちなみに、PHPUnitは、PHPのテストソースを実行するプログラム。
ジェンキンスで起動するように設定可能。

さて、いきなりだが、セレニウムでブラウザを動かすプログラムを作る。

FireFoxのアドインでseleniumeIDEを追加。
有効にしておく。
seleniumeIDE
FireFoxを再起動すると、使えるので、テストするサイトを開き、
「ツール」-「Selenium IDE」を選択。
IDE
ブラウザ上の操作が自動的に記録され始める。
記録開始
「山」と入力「送信」を押下「川」が表示されることをチェック。
自動的に記録される。
記録される


操作が終われば右の「赤丸」をクリックして記録終了。
「ファイル」から、htmlファイルとして「テストケースと、テストスィート」両方保存する。

当然、IDEからもテストできる。
テストした結果が下記の画像。
結果

当然、これって便利だし、セレニウムもJenkins要らない。
自分としては、これの方が気楽。
なのだが、世の中、ブラウザも自動的に起動して、しかも定期的に実行させておきたい欲求が出てくる。
テスター要らねーじゃんというわけだ。
と言っても、テストする人(プログラマとは違う目を持った人)は必要と思うけど。

というわけで、ジェンキンスが必要。
参考サイトは、「さくらのナレッジ
インストールはコピペで行けた。
記録の為にコマンドはコピペしておく。

↓Jenkinsのパッケージリポジトリを追加する
# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
↓Jenkinsが提供するパッケージの検証を行うための鍵を追加する
# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
↓Jenkinsをインストールする
# yum install jenkins
↓Jenkinsを起動する
# systemctl start jenkins


後はリンク先の様に設定し(ユーザ・パスワードはadminぐらいでよいだろう。どーせローカルだし。)、
テストプロジェクトとして
フリースタイルを選択し
「hello_test」を作成する。

ジェンキンスが日本語で表示されない場合は、違うブラウザで見てみる等すれば
大概日本語で表示される。ブラウザの言語設定に依存するらしい。


「hello_test」を作成したら、とりあえずビルド実行しておく。
そうするとワークスペースが作成される。

次に、セレニウムサーバ「Selenium Standalone Server」をダウンロードして入れておく。
と言っても、ファイルをダウンロードして、
適当なフォルダ(/var/lib/jenkins/)に放り込んで、ファイルの実行可能を許可しておけばよいだけ。

注意!バージョン3はバグがあり?、2.5を使ってね。
なので、左の「Previous Releases」から昔のバージョンのページに行って、
selenium-server-standalone-2.53.1.jar 2016-06-30 19:28:58 20.25MB
をダウンロード。
下の画像の個所において、実行可能にしておく。
selenium-server-standalone-2.53.1.jar
次に、centosへ仮想ディスクトップを入れる。
仮想ディスクトップでブラウザを実行してしまうというわけ。
# yum -y install xorg-x11-server-Xvfb

次に、再度Jenkinsの設定を行う。
設定例がどこかにないかと探していたら、
【検証自動化】第5回 Selenium IDEで記録したテストをJenkinsのジョブから実行する ~PC一台でブラウザテストを自動化~【後編】
に、ずばり記載がありました。
感謝!
以下箇条書きにて引用(異なる個所あり。実際の環境に合わせて変更してね)。

Jenkinsの管理

●プラグインの管理。
・Hudson Seleniumhq plugin(JenkinsからSeleniumを使用するために使用)
・Selenium HTML report(Seleniumテストシナリオの実行結果をHTMLにして見やすく表示するために使用)
・Xvfb plugin(JenkinsからXvfbを使用するために使用)
「再起動せずにインストール(install without restart)」を選択。

●システムの設定
グローバル プロパティ
環境変数にチェック
キーと値のリスト

レポートページの文字化けを防止するためJavaのエンコーディングを指定します。
キー _JAVA_OPTIONS
値 -Dfile.encoding=8859_1

ディスプレイNoを1に設定します。
キー DISPLAY
値 1

日本語変換の指定
キー XMODIFIERS
値 @im=scim

何かとここにあるので
キー PATH
値 ${PATH}:/usr/local/bin

Selenium Remote Control
htmlSuite Runner /var/lib/jenkins/selenium-server-standalone-2.53.1.jar

Save保存します。

●Global Tool Configuration
Xvfb installationに任意の名前を設定します。後述の「ジョブごとの設定」中のものと同じ名前になっていれば問題ありません。
Xvfb installation
name:xvfb(任意)

Save保存します。

hello_testプロジェクトの「設定」
●ビルド環境
Start Xvfb before the build, and shut it down after.にチェック。
「高度な設定」
Xvfb installation xvfb
Timeout in seconds 0
Xvfb screen 1024x768x24
Xvfb display name offset 1
●ビルド
SeleniumHQ htmlSuite Run
browser *firefox
startURL http://192.168.11.205/
suiteFile testsuite.html
resultFile result/Untitled_result.html

●ビルド後の処理
Selenium tests results location result/

「保存」します。

Centos設定
最初に作った、テストhtmlを/var/lib/jenkins/workspace/hello_test
にコピペ。
アクセス権をnobody等ジェンキンスが扱えるように変更。
/var/lib/jenkins/workspace/hello_test/result フォルダを作成。
こちらもアクセス権をnobody等ジェンキンスが扱えるように変更。

以上で、完了。

hello_testプロジェクトの「ビルド実行」を押下。
結果は以下の通り。
ビルド結果
ビルド結果
ビルド結果





VB Tips And Sample(HOME)>(VB.NET Sample インデックス)