CodeZine(コードジン)

特集ページ一覧

Selenium 0.7利用手順書(後編)

テストケースの作成とテストの実行

  • LINEで送る
  • このエントリーをはてなブックマークに追加

ダウンロード SeleniumSampleCode.zip (2.0 KB)

目次

テストケースの作成(1/2)

 それでは、実際の記述例をみながらテストケースを作成してみましょう。今回のテスト対象はMyAppというアプリケーションであると仮定します。

ログインのテストケース

 上述のログインテストをhtmlで作成してみます。使用するコマンドは次のとおりです。

  • URLを開く …… openコマンド
  • テキスト入力をする …… typeコマンド
  • ボタンをクリックする …… clickAndWaitコマンド
  • タイトルを検証する …… assertTitleコマンド

 各コマンドの書式は次のとおりです。

表3 ログインテストで用いるコマンド書式
コマンドターゲットバリュー
openurlなし
type入力するフィールドのelementLocator入力する値
clickAndWaitクリックする要素のelementLocatorなし
assertTitleタイトル文字列なし

 以上を用いると、tableは次のようになります。

図3 ログインのテストケースのtable(Seleniumコマンド)
Login_test_001
open/MyApp/login.jsp
typeid123456
typepasswordtestpass
clickAndWaitbutton=ログイン
assertTitleMyAppホーム

 テストケースのhtmlは次のようになります。

Login_test_001.html
<html>
<head><title>Login_Test_001</title></head>

<body>
<table cellpadding="1" cellspacing="1" border="1">

<tr><td rowspan="1" colspan="3">Login_Test_001</td></tr>

<tr>
    <td>open</td>
    <td>/MyApp/login.jsp</td>
    <td></td>
</tr>
<tr>
    <td>type</td>
    <td>id</td>
    <td>123456</td>
</tr>
<tr>
    <td>type</td>
    <td>password</td>
    <td>testpass</td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>button=ログイン</td>
    <td></td>
</tr>
<tr>
    <td>assertTitle</td>
    <td>MyAppホーム</td>
    <td></td>
</tr>

</table>
</body>
</html>
「Login_test_001.html」 2行目~7行目
<head><title>Login_Test_001</title></head>

<body>
<table cellpadding="1" cellspacing="1" border="1">

<tr><td rowspan="1" colspan="3">Login_Test_001</td></tr>

 2行目と7行目でLogin_Test_001と同じ名前をセットしています。テストケース名は必ずしもファイル名とイコールである必要はありませんが、同じ方が分かりやすいです。

 7行目の<td rowspan="1" colspan="3">の記述により、tableの「タイトル行=テストケース名」をセル結合しています。

「Login_test_001.html」 11行目
    <td>/MyApp/login.jsp</td>

 11行目。openコマンドで指定するURLは、アプリケーション名から始まる相対パスを指定します(http://から始まる絶対パス指定も可能です)。

「Login_test_001.html」 14行目~23行目
<tr>
    <td>type</td>
    <td>id</td>
    <td>123456</td>
</tr>
<tr>
    <td>type</td>
    <td>password</td>
    <td>testpass</td>
</tr>

 16行目と21行目に、htmlのinput要素のname属性、Strutsではhtml:textタグのproperty属性を指定します。

「Login_test_001.html」 24行目~33行目
<tr>
    <td>clickAndWait</td>
    <td>button=ログイン</td>
    <td></td>
</tr>
<tr>
    <td>assertTitle</td>
    <td>MyAppホーム</td>
    <td></td>
</tr>

 26行目。拡張書式「button=ボタン名」に即して、button=ログインでクリックするボタンを指定します。31行目。ログインして正常に遷移できたか、遷移先画面のタイトルであるMyAppホームを検証します。

画面表示の検証

 続いて、画面表示の検証の例に移りましょう。以下の画面を見てください。書籍登録でISBNを入力する画面で、以下の仕様になっているものとします。

  1. ISBNは半角の数字、またはXのみ入力可能。
  2. ISBNは10桁入力、または空欄。
  3. 上記に当てはまらない場合は「error!」表示と共に各エラーメッセージを表示する。
図4 表示検証で使用する画面の例
図4 表示検証で使用する画面の例

 ここでは図のように、上述した条件のうち、2番目の条件(入力桁数)のみ当てはまらない場合のテストケースを作成してみましょう。

 テストケースの内容は以下のようになります。

  1. ISBNを入力する
  2. [OK]ボタンを押す
  3. エラー表示を確認する

 ISBNを入力し[OK]ボタンを押すところは「ログインのテストケース」と同様です。その後、エラー表示を確認する際に以下のコマンドを使用します。

  • 画面に表示されていることを確認 …… assertTextPresentコマンド
  • 画面に表示されていないことを確認 …… assertTextNotPresentコマンド

 各コマンドの書式は次のとおりです。assert~verify~と記述することも可能です。

表4 画面表示検証テストで用いるコマンド書式
コマンドターゲットバリュー
assertTextPresent
verifyTextPresent
検証する文字列
(表示される文字列)
なし
assertTextNotPresent
verifyTextNotPresent
検証する文字列
(表示されない文字列)
なし

 2番目の条件のみ当てはまらないということは、以下の入力、および確認をすればよいことになります。

  • 入力
    • ISBNに数字およびXで9桁入力
  • 表示されることを確認
    • 「error!」
    • 「ISBNは書籍の場合10桁、雑誌の場合空の入力をしてください。」
  • 表示されないことを確認
    • 「ISBNは半角の数値およびXのみ入力してください。」

 テストケースのtableは次のようになります。

図5 ISBN入力検証テストケースのtable
Isbn_test_001
open/MyApp/login.jsp
……(中略)……
assertTitleMyApp -書籍登録-
typeisbn12345678X
clickAndWaitbutton=OK
assertTitleMyApp -書籍登録-
assertTextPresenterror!
assertTextPresentISBNは書籍の場合10桁、雑誌の場合空の入力をしてください。
assertTextNotPresentISBNは半角の数値およびXのみ入力してください。

 テストケースのhtmlは次のようになります。

「Isbn_test_001.html」
<html>
<head><title>Isbn_Test_001</title></head>

<body>
<table cellpadding="1" cellspacing="1" border="1">

<tr><td rowspan="1" colspan="3">Isbn_Test_001</td></tr>

<tr>
    <td>open</td>
    <td>/MyApp/login.jsp</td>
    <td></td>
</tr>

……(中略)……

<tr>
    <td>assertTitle</td>
    <td>MyApp -書籍登録-</td>
    <td></td>
</tr>
<tr>
    <td>type</td>
    <td>isbn</td>
    <td>12345678X</td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>button=OK</td>
    <td></td>
</tr>
<tr>
    <td>assertTitle</td>
    <td>MyApp -書籍登録-</td>
    <td></td>
</tr>
<tr>
    <td>assertTextPresent</td>
    <td>error!</td>
    <td></td>
</tr>
<tr>
    <td>assertTextPresent</td>
    <td>ISBNは書籍の場合10桁、雑誌の場合空の入力をしてください。</td>
    <td></td>
</tr>
<tr>
    <td>assertTextNotPresent </td>
    <td>ISBNは半角の数値およびXのみ入力してください。</td>
    <td></td>
</tr>

</table>
</body>
</html>

 ソースコードを切り分けて、処理の内容を見ていきましょう。

「Isbn_test_001.html」 1行目~15行目
<html>
<head><title>Isbn_Test_001</title></head>

<body>
<table cellpadding="1" cellspacing="1" border="1">

<tr><td rowspan="1" colspan="3">Isbn_Test_001</td></tr>

<tr>
    <td>open</td>
    <td>/MyApp/login.jsp</td>
    <td></td>
</tr>

……(中略)……

 15行目。……(中略)……の箇所には、ログイン画面からISBN入力画面に遷移するまでの操作を記述します。

「Isbn_test_001.html」 17行目~21行目
<tr>
    <td>assertTitle</td>
    <td>MyApp -書籍登録-</td>
    <td></td>
</tr>

 17行目~21行目。続いて、ISBN入力画面が開いていることを確認します。

「Isbn_test_001.html」 22行目~26行目
<tr>
    <td>type</td>
    <td>isbn</td>
    <td>12345678X</td>
</tr>

 22行目~26行目。ISBNを入力します。このテストケースでは数字とXのみで9桁入力します。

「Isbn_test_001.html」 27行目~31行目
<tr>
    <td>clickAndWait</td>
    <td>button=OK</td>
    <td></td>
</tr>

 拡張書式「button=ボタン名」に即して、button=OKと記述してクリックするボタンを指定します。

「Isbn_test_001.html」 32行目~36行目
<tr>
    <td>assertTitle</td>
    <td>MyApp -書籍登録-</td>
    <td></td>
</tr>

 32行目~36行目。エラーが発生して入力画面のままであることを確認します。

「Isbn_test_001.html」 37行目~46行目
<tr>
    <td>assertTextPresent</td>
    <td>error!</td>
    <td></td>
</tr>
<tr>
    <td>assertTextPresent</td>
    <td>ISBNは書籍の場合10桁、雑誌の場合空の入力をしてください。</td>
    <td></td>
</tr>

 37行目~46行目。表示される内容の検証をしています。

「Isbn_test_001.html」 47行目~55行目
<tr>
    <td>assertTextNotPresent </td>
    <td>ISBNは半角の数値およびXのみ入力してください。</td>
    <td></td>
</tr>

</table>
</body>
</html>

 47~51行目。表示されない内容の検証をしています。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2006/08/03 11:40 8/3 SelneiumIDEでassertTitleを自動的に記録する旨の記述を修正(オプション設定)

バックナンバー

連載:Selenium 0.7利用手順書

著者プロフィール

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5