カタカタブログ

SIerで働くITエンジニアがカタカタした記録を残す技術ブログ。Java, Oracle Database, Linuxが中心です。たまに数学やデータ分析なども。

Selenium 2をセットアップしSubversion - Jenkinsと連携させて自動テストさせてみる

Selenium2をセットアップし、Selenium IDEで作成したテストスクリプト
Jenkinsと連携し、自動テストするための設定手順をまとめてみる。
なお、Selenium IDEを使ったテストスクリプトの作成方法の詳細については本記事では述べない。

[環境]
Cent OS6.5

セットアップ手順

  • Firefoxをインストールする
  • Firefoxで以下のSeleniumダウンロードページにアクセスしSelenium IDEをインストールhttp://docs.seleniumhq.org/download/2.5.0 をクリックし、インストールf:id:osn_th:20140305175627p:plain
  • Firefox上で Selenium IDEを起動し適当なテストスクリプト作成し、JUnit形式でエクスポートしておく
  • ダウンロードページからJava用のSelenium Client & WebDriverをインストールf:id:osn_th:20140305175700p:plain
  • ダウンロードページからInternet Explorer Driver Server 32bit版をダウンロード(2013年10月現在、64bit版だと文字入力が異常に遅くなるらしい)f:id:osn_th:20140305175633p:plain
  • ダウンロードページからSelenium Serverをダウンロードf:id:osn_th:20140305175643p:plain
  • 上記でダウンロードしたjarをサーバに配置し、以下のコマンドでseleniumサーバ起動
[jenkins@localhost jenkins-1.542-0]$ java -jar /u01/jenkins/selenium/selenium-server-standalone-2.39.0.jar

f:id:osn_th:20140305175630p:plain

  • Eclipseで上で作成しエクスポートしておいたJUnitファイルをJavaプロジェクトに取り込む。また、selenium-server-standalone jarファイルをパスに取り込んでおく。
  • AllTests.javaというテストスイートを作成する。Eclipseで自動生成可能。f:id:osn_th:20140305175623p:plain
  • antビルドファイルを生成する。プロジェクト上で右クリック > エクスポート
  • antビルドファイルを選択し、次へf:id:osn_th:20140305175636p:plain
  • SeleniumSampleプロジェクトにチェックを入れ、完了f:id:osn_th:20140305175614p:plain
  • 生成されたbuild.xmlを確認する。AllTestsとjunitreportをbuildというtargetのdependsに追加する。f:id:osn_th:20140305175618p:plain
  • ソースをSubversionにコミットf:id:osn_th:20140305175620p:plain
  • 以下、JDKをインストールする。http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html から jdk-7u51-linux-x64.tar.gz をダウンロード
  • ダウンロードしたjdk-7u51-linux-x64.tar.gzを解凍
[jenkins@localhost jdk]$ pwd
/u01/jenkins/jdk
[jenkins@localhost jdk]$ tar zxvf jdk-7u51-linux-x64.gz
[jenkins@localhost jdk]$ ls -l
合計 134968
-rw-r--r--. 1 jenkins jenkins 138199690 1月 28 14:42 2014 jdk-7u51-linux-x64.gz
drwxr-xr-x. 8 jenkins jenkins 4096 12月 19 12:24 2013 jdk1.7.0_51
  • 以下、antインストール設定をする。http://ant.apache.org/ から apache-ant-1.9.3-bin.tar.gz をダウンロード
  • ダウンロードしたapache-ant-1.9.3-bin.tar.gzを解凍
[jenkins@localhost ant]$ pwd
/u01/jenkins/ant
[jenkins@localhost ant]$ tar zxvf apache-ant-1.9.3-bin.tar.gz
[jenkins@localhost ant]$ ls -l
合計 5404
drwxr-xr-x. 6 jenkins jenkins 4096 12月 23 23:52 2013 apache-ant-1.9.3
-rw-r--r--. 1 jenkins jenkins 5529017 1月 28 14:16 2014 apache-ant-1.9.3-bin.tar.gz
  • Jenkinsの管理 > システムの設定 からJDKの設定をする。JAVA_HOMEを指定する。f:id:osn_th:20140305175652p:plain
  • Jenkinsの管理 > システムの設定 からAntの設定をする。ANT_HOMEを展開先のディレクトリ指定。f:id:osn_th:20140305175655p:plain
  • Jenkinsで新規ジョブを作成し、Subversionリポジトリを設定する。その際、認証に失敗するので、指示にしたがってSubversionのユーザ名/パスワードを入力する。f:id:osn_th:20140305175611p:plain
  • ビルドはAntの呼び出しを選び、上で設定したantを選択するf:id:osn_th:20140305175645p:plain
  • ビルド実行。※ここでビルドは成功したが、AllTestsで以下のようなエラーになった。ディスプレイ処理のためXサーバの設定がいるっぽい
[junit] org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
[junit] Error: no display specified

f:id:osn_th:20140305175639p:plain

  • 仮想ディスプレイXvfbをセットアップする。以下をインストール・アップデート
# yum -y install xorg-x11-server-Xvfb
# yum -y install firefox
# yum -y groupinstall "X Window System"
  • Xvfbを99番ディスプレイで起動
[jenkins@localhost ~]$ Xvfb :99 -ac -screen 0 1024x768x8 &
  • Jenkinsビルド内でDISPLAY変数を:99にセットする必要がある。Jenkinsの管理 > システムの設定を開き、グローバル プロパティの環境変数

キー: DISPLAY, 値: :99 を追加f:id:osn_th:20140305175657p:plain

  • ビルド再実行。今度はテストに成功し、JUnitレポートが生成されていることが確認できた。※テストに失敗する場合は、サーバからSeleniumテスト対象のページにhttpがとばせるか確認するf:id:osn_th:20140305175650p:plain

起動手順

起動方法をまとめておく。

Xvfb起動

[jenkins@localhost ~]$ Xvfb :99 -ac -screen 0 1024x768x8 &

selenium server起動

[jenkins@localhost ~]$ java -jar /u01/jenkins/selenium/selenium-server-standalone-2.39.0.jar