TOPシステム開発> テストケースを記述する
SeleniumでWebアプリケーションテストを自動化
SeleniumでWebアプリケーションテストを自動化

第5回:SeleniumでWebアプリケーションテストを自動化(SeleniumCore−HTML後編)

著者:DTS  大田尾 一作   2007/10/11
1   2  3  次のページ
テストケースを記述する

   「第4回:テストの作成と実施(SeleniumCore−HTML前編)」では、プロジェクトの作成やSeleniumの動作確認を行いました。今回はいよいよテストケースを実際に記述していきましょう。

   これまでに述べてきたように、Seleniumは手動でWebブラウザを操作したり、画面を確認する作業をかわりに行ってくれるツールです。したがってSeleniumのテストケースは手動で実施する試験項目(手順)を元に作成するのが基本となります。

   ではMyMeiboアプリケーションの結合試験項目1-1を見てください。
試験項番1-1動作内容
図1:試験項番1-1動作内容
(画像をクリックすると別ウィンドウに拡大図を表示します)

   この図に記載されている条件(手順)と確認事項を実際の操作順に並べてみると、以下のようなものになります。

  1. index.jspを開く
  2. 「MyMeibo 社員一覧」画面が表示されること。タイトルが「MyMeibo 社員一覧」であること
  3. 「社員一覧」と表示されていること
  4. 社員一覧のテーブルが表示されていること

表1:MyMeiboアプリケーションの結合試験項目

   この表1にある4つの動作の内容に対応したSeleniumコマンドは以下のようになります。

動作内容 利用するコマンド
ブラウザで指定したURLを開く(図1-1) openコマンド
タイトル(<title>)を検証する(図1-2) assertTitleコマンド
表示されている文字列を検証する(図1-3) assertTextPresentコマンド
要素が表示されているかを検証する(図1-4) assertElemnetPresentコマンド

表2:動作の内容に対応したSeleniumのコマンド

   では、それぞれのコマンドについて説明します。


Openコマンド

   指定したURLを開きます。URLは「http://」からはじまる絶対パス指定でもできますが、アプリケーションをデプロイする対象を変更した場合にはテストケースを修正する必要があります。そこでテスト対象アプリケーションのURLを開く場合は、基本的にはアプリケーションのコンテキストからはじまる相対パスで指定します。

ターゲット バリュー
URL(相対パスまたは絶対パス) なし

表3:Openコマンドの書式

コマンド 第一引数(ターゲット) 第二引数(バリュー)
open /MyMeibo/index.jsp  
open http://192.168.0.1:8080/MyApp/index.html  

表4:Openコマンドの例


assertTitleコマンド

   現在のWebページのタイトルを検証します。これは<title>タグの内容が指定した文字列と合致するか検証するものです。Webページのtitleが異なる場合は期待したWebページにない可能性があり、その場合にはそれ以降の操作がすべて無効になってしまうため、「verify〜(検証NGの際テスト続行)」形式よりも「assert〜(検証NGの際テスト中止)」形式を使用した方がいいでしょう。

ターゲット バリュー
期待するタイトル文字列 なし

表5:assertTitleコマンドの書式式

コマンド 第一引数(ターゲット) 第二引数(バリュー)
assertTitle MyMeibo 社員一覧  
verifyTitle Selenium入門 - (1)テストの書き方  

表6:assertTitleコマンドの例


assertTextPresentコマンド/assertTextNotPresentコマンド

   現在のページに指定した文字列が表示されているか/いないか、画面の表示を確認することができるコマンドです。例えば、画面のバリデーションチェックを確認する試験項目で「期待したエラーメッセージが表示されているか」ということを確認できます。また逆に「余計なメッセージが表示されていないか(assertTextNotPresent)」なども確認することもできます。

   このコマンドを利用する際の注意点としては、画面のどこに表示されているかを検出することはできないことです。また同じ表示が複数あった場合、表示されている回数を検出することもできません。こういったことを検出するためには、別のコマンドなどを使って対応する必要があります。

ターゲット バリュー
表示される文字列 なし

表7:assertTextPresentコマンド/assertTextNotPresentコマンドの書式

コマンド 第一引数(ターゲット) 第二引数(バリュー)
verifyTextPresent 社員一覧  
verifyTextNotPresent error!  
assertTextPresent 山田さんへの貸出しを完了しました。  

表8:assertTextPresentコマンド/assertTextNotPresentコマンドの例


assertElementPresentコマンド/assertElementNotPresentコマンド

   現在のWebページに指定したHTML要素がある/ないかを検証します。ElementLocatorで指定したHTML要素が現在のWebページにあるかを確認するコマンドです。例えば、管理者でログインしたときのみ利用できるボタンがちゃんとあるか、または一般ユーザでログインしたときにボタンがないかを確認できます。

ターゲット バリュー
ElementLocator なし

表9:assertElementPresentコマンド/assertElementNotPresentコマンドの書式

コマンド 第一引数(ターゲット) 第二引数(バリュー)
verifyElementPresent id=emptable  
assertElementNotPresent name=AdminOnlyButton  

表10:assertElementPresentコマンド/assertElementNotPresentコマンドの例

1   2  3  次のページ


株式会社DTS 大田尾 一作
著者プロフィール
株式会社DTS  大田尾 一作
技術SE部在籍。業務内容は、Java/Web開発に役立つ技術の調査・推進。Selenium関連では、開発コミュニティにリファレンスガイド日本語訳を寄贈。ブログ(http://d.hatena.ne.jp/otao/)にてSelenium最新情報、Tips等も掲載。


INDEX
第5回:SeleniumでWebアプリケーションテストを自動化(SeleniumCore−HTML後編)
テストケースを記述する
  HTMLソースを確認する
  テストの実施