テストケースの配置&テストの実行
いよいよ、ここまで作成したテストケースを使ってテストを実行していきます。
テストの構成
初めに、テストの構成について確認しておきましょう。Seleniumでは、1つのテストケースが1つのhtmlファイルで実現されています。
テストケースの集合体がTestSuiteで、SeleniumはTestSuite単位でテストを実施します。そして、複数のTestSuiteをまとめた目次に相当するのものがindexになります。

テストケースを追加する場合は、index/TestSuite/TestCase、いずれかの単位で追加することになります。
既存のテストケースに追加する
まず、TestCaseを既存のデフォルトテストに追加してみましょう。デフォルトテストのフォルダ/ファイル構成は次のようになっています。
SeleniumTest
+- WEB-INF/
+- selenium-core/
+- index.html …………………… Index
+- tests/
+- TestSuite.html ………… TestSuite
+- html/
+- TestOpen.html
+- TestClick.html ………… 各テストケース
+- TestType.html
:
ここでは「MyLoginTest01.html」というテストケースを追加してみましょう。手順は次のとおりです。
- テストケースのhtmlファイルを所定のフォルダに配置
- TestSuiteに追加したテストケースのリンクを追記
- 動作確認
<table cellpadding="1" cellspacing="1" border="1"> <tbody> <tr><td><b>Test Suite</b></td></tr> <tr><td><a href="./TestOpen.html">TestOpen</a></td></tr> <tr><td><a href="./TestClick.html">TestClick</a></td></tr> : <tr><td><a href="./TestVerifyEditableFailures.html"> TestVerifyEditableFailures</a></td></tr> <tr><td><a href="./NyLoginTest01.html"> MyLoginTest01</a></td></tr> </tbody> </table>
新規にテスト群を作成する
結合試験などの場合、次のような構成でテスト項目が挙げられていると思います。
| 中項目No | 中項目 | 小項目No | 小項目 |
| 1 | ログイン | 1 | 正常なIDとパスワードでログインできること |
| 2 | 正常なIDと誤ったパスワードの場合ログインできないこと | ||
| : | : | ||
| 2 | 書籍検索 | 1 | キーワードを入力して検索できること |
| 2 | カテゴリを指定して検索できること | ||
| : | : | ||
| : | : | : | : |
Seleniumでも、テスト項目の構成に合わせてテスト群を作成していきましょう。Seleniumでは1つのテストケース(html)が小項目に、TestSuiteが中項目に該当します。以下の手順で進めていきます。
(1)結合試験用フォルダを作成
SeleniumTestプロジェクト直下に「testhtml-it」フォルダを作成します。
「selenium-core」フォルダ配下はデフォルトのテストケース以外にもSeleniumの動作を司るJavaScriptやhtml類が格納されていますから、プロジェクトで新たに追加するものは明確に分けておいた方が良いでしょう。
今回は、「testhtml-it」というフォルダを作成しました。結合試験後、機能試験など別のテストが追加される可能性を考慮しています。
(2)各中項目のフォルダを作成
「testhtml-it」フォルダ配下で以下のフォルダを作成します。
01_Login_Test 02_Search_Test
フォルダ名には特に制限はありません。今回は中項目Noと中項目名でフォルダを作成しました。
(3)各中項目のフォルダにテストケースhtmlを配置
作成した各テストケースのhtmlを配置します。
(01_Login_Test フォルダ配下)
01_Login_Test_001.html
01_Login_Test_002.html
:
(02_Search_Test フォルダ配下)
02_Search_Test_001.html
02_Search_Test_002.html
:
テストケースのファイル名には特に制限はありません。今回は、中項目名と連番でファイル名を付けました。
(4)TestSuiteを作成
各中項目のフォルダにTestSuite用htmlを作成します。作成するファイルは次のとおりです。
(01_Login_Test フォルダ配下) 01_Login_TestSuite.html (02_Search_Test フォルダ配下) 02_Search_TestSuite.html
TestSuiteはカラム数1のtableとして作成します。TestSuiteに含む各テストケースへのリンクを相対パスで指定します。今回はTestSuiteとテストケースは同じフォルダに配置しているので「./テストケースファイル名」という記述になります。
<meta http-equiv= "Content-Type" content="text/html; charset=Shift_JIS"> <html> <head> <title>01_Login_TestSuite</title> </head> <body> <table border="1"> <tr><td>01_Login_TestSuite</td></tr> <tr><td><a href="./01_Login_Test_001.html"> 01_Login_Test_001</a></td></tr> <tr><td><a href="./01_Login_Test_002.html"> 01_Login_Test_002</a></td></tr> </table> </body> <html>
9行目、TestSuiteはカラム数=1のtableであり、1行目にはTestSuite名「01_Login_TestSuite」を記述しています。
10行目、11行目、各テストケースhtmlの相対パスを記述しています。
(5)Indexを作成
結合試験用フォルダに、各中項目TestSuiteを示すIndexを作成します。今回の例では、「testhtml-it」フォルダ直下に「index.html」を作成します。
Indexは各TestSuiteを起動するためのものです。seleniumの「TestRunner.html」へのリンクを指定し、testパラメータとして起動したいTestSuiteへの「TestRunner.html」からの相対パスを指定します。
<meta http-equiv= "Content-Type" content="text/html; charset=Shift_JIS"> <html> <head> <title>結合テスト index</title> </head> <body> 結合テスト index <br></br> <a href="/SeleniumTest/selenium-core/core/TestRunner.html ?test=../../testhtml-it/01_Login_Test/01_Login_TestSuite.html" target="_blank">01_Login_Test</a> <br></br> <a href="/SeleniumTest/selenium-core/core/TestRunner.html? ?test=../../testhtml-it/01_Login_Test/02_Search_TestSuite.html" target="_blank">01_Login_Test</a> <br></br> </body> </html>
9行目、「/SeleniumTest/selenium-core/core/TestRunner.html」と記述し、SeleniumTestプロジェクトの「TestRunner.html」を相対パス指定します。
続く、10行目、「?test=../../testhtml-it/01_Login_Test/01_Login_TestSuite.html」では、リクエストパラメータtest=の引数に、TestRunnerから各TestSuiteへの相対パスを指定しています。
また、11行目では、target="_blank"とし、TestSuiteを別ウィンドウで開くためにblankを指定しています。
以下が一通り作成した状態です。

(6)動作確認
Tomcatを起動し、ブラウザで以下のURLを指定すると、作成した「testhtml-it」のindex画面が表示されます*2。

そして、[01_Login_Test]のリンクをクリックすると、別ウィンドウでログインのTestSuiteが表示されました! TestSuite内の各テストケースを実施してみてください。
(7)テストケースの追加
テストケースを追加する場合、手順(3)~(4)のファイル配置とTestSuiteへの追記を繰り返します(中項目を増やす場合は手順(2)~(4))。
テストの実施
テストを実施するには、上述したように結合試験のIndex画面から各TestSuiteを実行します。
また、直接TestRunnerを起動することもできます。以下のようにtestパラメータにTestSuiteを指定して、「TestRunner.html」を開きます。
それでは、Seleniumでのテストをお楽しみ下さい!!
終わりに
Webアプリケーション用のテストツールSeleniumについて解説してきました。Seleniumを使用することで、ブラウザ操作を自動化して、Webアプリケーションの試験・検証を効率的に行うことができます。前回に引き続き、今回はテストケースを実際に記述し、Seleniumでテストを実行する手順を解説しました。
次回は、Seleniumを使用する際のTipsを紹介します。お楽しみに。

