Selenium Remote Control(以降Selenium RC)におけるHTMLSuite(HTML形式で記述したテストスイート)の実行を、より手軽に、より便利にするためのライブラリです。
Selenium HTMLSuite Extension を使った、Seleniumによる継続的なリグレッションテストを行うためのツールとして、Selenium Auto Exec Server(AES)も公開しています。
Selenium HTMLSuite Extension は、Selenium RCに対して、下記のような拡張機能を提供します。(あくまでHTMLSuiteの実行に関してのみの拡張です)
Selenium RCでは、実行するHTMLSuiteを1つしか指定できませんが、本ライブラリではHTMLSuiteが配置してあるディレクトリを指定することにより、そのディレクトリ内の特定のファイルパターン(ファイル名に"suite"または"Suite"が含まれる)に一致するHTMLSuiteをまとめて実行することが出来ます。
テストケースのHTMLが増えるたびに、HTMLSuiteファイルにリンクを追加するのは面倒です。
本ライブラリでは、HTMLSuiteファイルを事前に用意しなくても、実行時にHTMLSuiteファイルを自動生成し実行することが出来ます。(所定のディレクトリにテストケースのHTMLを入れておくだけでOK)
Selenium RCでは、対象のブラウザを1つしか指定できませんが、本ライブラリでは複数のブラウザでの実行を一度に指定可能です。
Selenium RCでは、HTMLSuiteを実行時に必ず結果ファイルの出力先を指定しなければなりませんが、本ライブラリを使うと"結果ファイルを出力しない"ように指定することも可能です。
Selenium RCではHTMLSuiteのパスを絶対パスで指定する必要がありましたが、本ライブラリでは実行ディレクトリからの相対パスでの指定でもOKです。
本ライブラリでは、プロパティファイルにSelenium RCの起動から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のテストクラスとしても実行できます。
その場合には、設定ファイル(コマンドラインからの実行時と同じ内容)をクラスパスに配置し、com.enjoyxstudy.selenium.htmlsuite.HTMLSuiteTest を実行します。
設定ファイルは、下記のような順序で検索されます。
com.enjoyxstudy.selenium.htmlsuite.HTMLSuiteTestをそのまま実行するならば、com.enjoyxstudy.selenium.htmlsuiteパッケージのHTMLSuiteTest.propertiesが最優先の設定ファイルとなります。
なお、HTMLSuiteTestを継承して別クラス(中身の処理は定義なし)を作れば、設定ファイルを毎に複数のテストクラスとして実行することも可能です。
複数のテストクラスを作る必要がなければ、ルートパッケージにhtmlSuite.propertiesを置いて実行するのが一番手軽だと思います。
AntやMavenのタスク、プラグインとしてHTMLSuiteを実行するものがありますので、そちらを使っても良いと思いますが、、本ライブラリを使えば、HTMLSuiteの指定がより楽になるのではと思います。
ver 1.2 (2011/08/02)
ver 1.1 (2010/11/24)
ver 1.0 (2009/09/25)
ver 0.7 (2009/04/13)
ver 0.6 (2008/11/30)
ver 0.5 (2008/11/07)
ver 0.4 (2008/10/25)
ver 0.3 (2008/07/04)
ver 0.2 (2008/05/24)
ver 0.1 (2007/11/17)
お問い合わせ、コメント等は下記Blogまたは、Contact からお願いします。