Selenium HTMLSuite Extension

Selenium Remote Control(以降Selenium RC)におけるHTMLSuite(HTML形式で記述したテストスイート)の実行を、より手軽に、より便利にするためのライブラリです。

Selenium HTMLSuite Extension を使った、Seleniumによる継続的なリグレッションテストを行うためのツールとして、Selenium Auto Exec Server(AES)も公開しています。


Selenium HTMLSuite Extension は、Selenium RCに対して、下記のような拡張機能を提供します。(あくまでHTMLSuiteの実行に関してのみの拡張です)

HTMLSuiteの複数ファイル指定

Selenium RCでは、実行するHTMLSuiteを1つしか指定できませんが、本ライブラリではHTMLSuiteが配置してあるディレクトリを指定することにより、そのディレクトリ内の特定のファイルパターン(ファイル名に"suite"または"Suite"が含まれる)に一致するHTMLSuiteをまとめて実行することが出来ます。

HTMLSuiteの自動生成

テストケースのHTMLが増えるたびに、HTMLSuiteファイルにリンクを追加するのは面倒です。

本ライブラリでは、HTMLSuiteファイルを事前に用意しなくても、実行時にHTMLSuiteファイルを自動生成し実行することが出来ます。(所定のディレクトリにテストケースのHTMLを入れておくだけでOK)

複数ブラウザの指定

Selenium RCでは、対象のブラウザを1つしか指定できませんが、本ライブラリでは複数のブラウザでの実行を一度に指定可能です。

実行結果ファイルの出力抑止

Selenium RCでは、HTMLSuiteを実行時に必ず結果ファイルの出力先を指定しなければなりませんが、本ライブラリを使うと"結果ファイルを出力しない"ように指定することも可能です。

HTMLSuiteの実行を相対パスで指定可能

Selenium RCではHTMLSuiteのパスを絶対パスで指定する必要がありましたが、本ライブラリでは実行ディレクトリからの相対パスでの指定でもOKです。

HTMLSuiteの実行内容をプロパティファイルで指定可能

本ライブラリでは、プロパティファイルにSelenium RCの起動からHTMLSuiteの実行に関する設定を記載し、実行することが出来ます。

JUnitからHTMLSuiteの実行

HTMLSuiteを実行するためのJUnit用テストクラスも用意してあります。

実行するHTMLSuiteの設定ファイル(プロパティファイル)を配置し、テストクラスを実行することによりHTMLSuiteが実行されます。


ダウンロード

Selenium RC(2.2.0)のselenium-server.jarも同梱しています。

サンプルとなるHTMLSuiteも入っておりますので、すぐにお試しいただけます。

開発中のソースコードは下記から参照できます。


ライセンス

Selenium RC と同様に、Apache License, Version 2.0とします。


使用方法

コマンドラインからの実行

ダウンロードしたZipファイルを解凍し、htmlSuite.propertiesにSelenium RCおよびHTMLSuiteの実行に関する設定を記載します。

htmlSuite.propertiesのサンプルは下記の通りです。

browser=*firefox,*iexplore
startURL=http://search.yahoo.com/
generateSuite=true
suite=suite
result=result

port=4444
timeout=1800
#singleWindow=true
#userExtensions=user-extensions.js
#proxyHost=localhost
#proxyPort=8888
#avoidProxy=true
#debug=true
#log=selenium.log

各設定項目の説明は、下記の通りです。(Selenium RCでHTMLSuiteを実行する際のオプションとほぼ一緒です)

項目 必須
/任意
内容
browser 必須 HTMLSuiteの実行ブラウザを指定します。カンマ区切りで複数指定可能です。
startURL 必須 テスト対象のドメインを指定します。
generateSuite 任意 HTMLSuiteの自動生成を行う場合に"true"を指定します。
suiteで指定したディレクトリ内の"Case"または"case"がつくファイルをテストケースのHTMLと判断し、HTMLSuiteファイルを作成します。
詳しくは、suiteの欄をご参照ください。
suite 必須 HTMLSuiteのパスを指定します(相対パスでもOK)。指定したパス(ディレクトリまたはファイル)とgenerateSuiteの組み合わせによって、実行されるHTMLSuiteが変わってきます。
[ディレクトリ名指定(指定ディレクトリにテストケースあり)、generateSuite=true の場合]
指定ディレクトリからテストケースのHTMLを検索し、同ディレクトリに"generatedTestSuite.html"というファイルでHTMLSuiteを作成し実行します。
[ディレクトリ名指定(指定ディレクトリにテストケースなし)、generateSuite=true の場合]
指定ディレクトリにテストケースがない場合、指定ディレクトリ配下のディレクトリ毎にHTMLSuiteを作成します。
HTMLSuiteのファイル名は、<ディレクトリ名>.html となります。HTMLSuiteを機能毎に分けて作成したい場合などに便利です。
[ファイル名指定、generateSuite=true の場合]
指定されたファイル名でHTMLSuiteを自動生成します。
テストケースの検索対象は、指定したHTMLSuiteと同じディレクトリ内が対象になります。
[ディレクトリ名指定、generateSuite=false(または指定なし) の場合]
そのディレクトリ内からHTMLSuiteを検索(ファイル名に"Suite"または"suite"が含まれる)し、実行します。
[ファイル名指定、generateSuite=false(または指定なし) の場合]
指定されたファイルをHTMLSuiteとして実行します。
result 任意 HTMLSuiteのテスト結果を出力するディレクトリを指定します。
テスト結果のファイルは、指定ディレクトリ配下に "(ブラウザ名)/(HTMLSuite名)_result.html" として出力されます。
指定しない場合は、テスト結果はどこにも出力されません。
port 任意 Selenium サーバを起動するポート番号を指定します。
デフォルトは4444です。
timeout 任意 HTMLSuite実行時のタイムアウト時間(秒)を指定します。
デフォルトは1800秒です。
singleWindow 任意 "true"を指定するとテストを同一ウインドウで実行します。
デフォルトは"false"(別ウインドウ)です。
debug 任意 "true"を指定した場合、詳細なログ(デバッグログ)をコンソールに出力します。
log 任意 ログをファイルに出力したい場合、ファイル名を指定します。
userExtensions 任意 JavaScriptで記述されたSeleniumのユーザ拡張ファイルを使用する場合に指定します。
proxyHost 任意 利用するプロキシのホストを指定します。
proxyPort 任意 利用するプロキシのポート番号を指定します。
avoidProxy 任意 "true"を指定すると、/selenium-server 以外のリクエストは、Seleniumサーバで受けないようになります。
firefoxProfileTemplate 任意 Firefoxで利用するプロファイルディレクトリを指定します。
trustAllSSLCertificates 任意 "true"を指定すると、全てのSSL証明書を信頼するようにします。
試験対象のサーバが提供するSSL証明書で警告が出る場合に、本オプションを指定しないとエラーとなります。

解凍してできたjarを実行します。(Selenium RCの実行には、Javaの実行環境(JRE1.5以上)が必要となります)
※start.batに同様の内容が書いてありますので、それを実行すればOKです。

java -jar selenium-ext-htmlsuite-1.2.jar

デフォルトでは、実行ディレクトリのhtmlSuite.propertiesを設定ファイルとして読み込みますが、他のファイルを使用したい場合には、引数として設定ファイル名(相対、絶対どちらもOK)を指定してください。

Seleniumサーバが起動し、HTMLSuiteが実行されます。HTMLSuiteの実行が終了すると、Seleniumサーバも停止します。

JUnitのテストクラスとして実行

コマンドラインではなくJUnitのテストクラスとしても実行できます。

その場合には、設定ファイル(コマンドラインからの実行時と同じ内容)をクラスパスに配置し、com.enjoyxstudy.selenium.htmlsuite.HTMLSuiteTest を実行します。

設定ファイルは、下記のような順序で検索されます。

  1. 実行クラスと同じパッケージの(実行テストクラス).properties
  2. ルートパッケージのhtmlSuite.properties

com.enjoyxstudy.selenium.htmlsuite.HTMLSuiteTestをそのまま実行するならば、com.enjoyxstudy.selenium.htmlsuiteパッケージのHTMLSuiteTest.propertiesが最優先の設定ファイルとなります。

なお、HTMLSuiteTestを継承して別クラス(中身の処理は定義なし)を作れば、設定ファイルを毎に複数のテストクラスとして実行することも可能です。

複数のテストクラスを作る必要がなければ、ルートパッケージにhtmlSuite.propertiesを置いて実行するのが一番手軽だと思います。

AntやMavenのタスク、プラグインとしてHTMLSuiteを実行するものがありますので、そちらを使っても良いと思いますが、、本ライブラリを使えば、HTMLSuiteの指定がより楽になるのではと思います。


変更履歴

ver 1.2 (2011/08/02)

  • Selenium RC バージョン2.2.0 対応。

ver 1.1 (2010/11/24)

  • Selenium RC バージョン1.0.3 対応。

ver 1.0 (2009/09/25)

  • Selenium RC バージョン1.0.1 対応。

ver 0.7 (2009/04/13)

  • Selenium RC バージョン1.0beta2 対応。

ver 0.6 (2008/11/30)

  • trustAllSSLCertificatesオプション対応。

ver 0.5 (2008/11/07)

  • Selenium RC バージョン1.0beta1 対応。
  • Firefox3対応。
  • 子ディレクトリ毎のテストスイート作成機能追加。

ver 0.4 (2008/10/25)

  • HTMLSuiteの自動生成でテストケースの順序が動作OSによって異なる問題対処。

ver 0.3 (2008/07/04)

  • firefoxProfileTemplateオプション対応。

ver 0.2 (2008/05/24)

  • リファクタリング。
  • Selenium Auto Exec Server向けの修正。

ver 0.1 (2007/11/17)

  • 初回公開。


その他

お問い合わせ、コメント等は下記Blogまたは、Contact からお願いします。