Selenium
Seleniumとは
ThoughtWorksが開発したオープンソースのテスティングフレームワーク。実際にWEBブラウザを利用して単体テストを実行することができる。
テスト実行
SeleniumのテストにはTestRunnerとDrivenの2種類のテスト方法がある。
TestRunner
Html+JavaScriptでテストを実行する。SeleniumのCoreとなる部分。
実行の際は、TestRunner.htmlに対象のTestSuiteファイル名をtestパラメータ指定して開く。
TestRunner.html?test=[対象TestSuite]
例
TestRunner.html?test=mytests/MyTestSuite.html
Driven
-
各テストケース
テストケースはHTMLのtableを利用して記述する。htmlのファイル名は自由。テーブルはテスト名を表す1行のヘッダと、具体的なテスト手順を記述した複数行からなる。テスト手順の行は、3つの項目からなる。行の左から、コマンド・ターゲット・値である。
例
<table> <tr><td colspan="3">Title</td></tr> <tr><td>open</td><td>filepath</td><td></td></tr> <tr><td>verifyText</td><td>postal</td><td>000-1111</td></tr> </table>
| Title | ||
| open | filepath | |
| verifyText | postal | 000-1111 |
初期化/終了処理
初期化と終了処理用の特別なメソッドは用意されていないが、openコマンド(後述)に以下の値を指定することで実現できる。
setUp
/setUpFT
tearDown
/tearDownFT
実行結果画像
成功

図1:成功(テスト名称欄が緑)

図1:成功(テスト名称欄が緑)
失敗

図2:失敗(テスト名称欄が赤)
サンプル
first.html
<html> <head> <title>first</title> </head> <form name="profile" action="./second.html"> <input type="test" name="name"><br> <select name="role"> <option value=""></option> <option value="admin">admin</option> <option value="normal">normal</option> </select> <input type="submit" name="submit"> </form> </html>
second.html
<html> <head> <title>second</title> </head> <body> <a href="./first.html">first</a> </body> </html>
MyTestSuite.html
<html>
<head>
<title>Test Suite</title>
</head>
<body>
<table border="1">
<tr><td><b>Test Suite</b></td></tr>
<tr><td><a href="./MyTestSearch.html">MyTestSearch</a></td></tr>
</table>
</body>
</html>
以上のファイルに対してテストケースを記述する。ファイル名はMyTestSearch.html
1.first.htmlをひらく。
<tr>
<td>open</td>
<td>./mytests/mock/first.html</td>
<td></td>
</tr>
2.タイトルを検証
<tr>
<td>verifyTitle</td>
<td>first</td>
<td></td>
</tr>
3.テキストボックスを検証
<tr>
<td>verifyValue</td>
<td>name</td>
<td></td>
</tr>
4.セレクトリストを検証
<tr>
<td>verifySelected</td>
<td>role</td>
<td></td>
</tr>
5.テキストボックスに値を入力
<tr>
<td>type</td>
<td>name</td>
<td>myname</td>
</tr>
6.セレクトリストから選択
<tr>
<td>select</td>
<td>role</td>
<td>normal</td>
</tr>
7.フォーム送信
<tr>
<td>clickAndWait</td>
<td>submit</td>
<td></td>
</tr>
8.次画面のタイトルを検証
<tr>
<td>verifyTitle</td>
<td>second</td>
<td></td>
</tr>
9.リンククリック
<tr>
<td>click</td>
<td>document.links[0]</td>
<td></td>
</tr>
10.次画面のタイトルを検証
<tr>
<td>verifyTitle</td>
<td>first</td>
<td></td>
</tr>

