TOPシステム開発> Selenium IDEを使う




Selenium
SeleniumでWebアプリケーションテストを自動化

第7回:Selenium IDEの活用とSelenium利用時の注意点

著者:DTS  大田尾 一作   2007/10/24
前のページ  1  2  3  次のページ
Selenium IDEを使う

   Firefoxを起動し、メニューバーから「ツール → Selenium IDE」を選択します。すると別ウィンドウでSelenium IDEが開きます。SeleniumIDEのウィンドウが開いたのを確認したら、Firefoxのアドレスバーに以下のURL「http://localhost:8080/MyMeibo/index.jsp」を入力してサンプルアプリケーションを起動してください。

   Selenium IDEは起動すると記録状態となっていますので、試験手順に従って操作してください。検証コマンドは右クリックのメニューから実行します。

   一通り操作が終わったら、Selenium IDEの記録を停止してください。Selenium IDEウィンドウの右上にある「Record」ボタンが選択状態になっているので、これをクリックします。
右上にある「Record」ボタンが選択状態になる
図3:右上にある「Record」ボタンが選択状態になる

   「SeleniumIDEウィンドウにて「ソース」タブを選択するとテストコードが生成されています。このコードをEclipseのテストケースファイルにコピーすれば基本的にテストケース作成は終了です!。

   これまで手作業で1つずつ操作とHTMLコードを確認しながらテストコードを記述していたのに比べて、格段に簡単にテストコードを作成できることが体感できたかと思います。

   SeleniumIDEは、HTML以外にもJavaやRubyなどSeleniumRCで対応している各開発言語のフォーマットでテストコードを生成してくれますので、SeleniumCoreにしろSeleniumRCにしろどのような場合でも活用できます。SeleniumIDEの「ソース」タブから必要な部分をコピー&ペーストしてもいいし、「ファイル → 名前を付けて保存」でテストケースファイルとして保存することも可能です。ファイルとして保存する場合は、文字コードに注意してください。

   SeleniumIDEは非常に便利なのですが、利用する際に2つ注意点があります。1つは、SeleniumIDEの生成してくれるコードでSeleniumが完璧に動くわけではないということです。SeleniumIDEの生成したコードでSeleniumCoreまたはRCでテストを実施するとNGになったり、途中で止まってしまう場合があります。

   したがって、SeleniumIDEのコードをベースにして、動作を確認しながらテストコードを修正していくというのがSeleniumのテストケース作成の王道といえます。

   SeleniumIDE利用時の注意点の2つ目は、毎回Selenium IDEで操作を記録していくのが必ずしも早いとは限らないということです。例えばいくつものテストケースで共通するログイン処理などは、毎回SeleniumIDEで操作してコード生成するよりもコピー&ペーストした方が早く確実です。またSeleniumRCの場合なら共通処理をメソッドとして切り出して効率的にコードを記述することも可能です。


Selenium使用時の注意点と使いどころ

   さて、これまでSeleniumの使い方を説明してきましたが、実際に業務に適用していく場合には、いくつか注意しなければならないことがあります。


テストコード作成コストは高い

   まず、テストの初期コスト、即ちテストコードを作成するためには、かなりの工数がかかるということを肝に銘じておく必要があります。これはJUnitなど他のテスティングフレームワークも同様ですが、テストを1度だけしか実施しないような場合だと、Seleniumを適用する意味がありません。再帰試験を実施するという前提で取り組まないと、生産性を却って下げることになりかねません。


すべてのWebアプリケーションに対して有効というわけではない

   Seleniumはテスト対象のWebアプリケーションを選ばないという特徴がありますが、効率的なテスト作成を行うためには、画面(HTMLやJSP)作成時からSeleniumを意識した実装を行う必要があります。画面のHTMLにid属性やname属性がない場合やAjaxやFrameを多用した複雑な画面ではテストコードを作成するのがとても大変になり、初期コストをさらに押し上げてしまいます。


Seleniumでできないこともある。

   Seleniumで実施できない試験項目があります。SeleniumCoreはJavaScriptで実装されていますので、JavaScriptで実行できない(扱えない)ことはSeleniumで行うことができません。

   例えばファイルのダウンロードを行って、そのファイルの検証を行うことはできません。また、SeleniumCoreのTestRunnerはiFrameを使っているため、テスト対象のアプリケーションが多重フレーム(フレームがネストしている)を使っている場合やリンク(a要素)で「target="_top"」を指定している場合はSeleniumは正常に動作できません。SeleniumプロジェクトでもFrame対応オプションなどの対策を進めていますが、まだ完全というわけではありません。

前のページ  1  2  3  次のページ


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


INDEX
第7回:Selenium IDEの活用とSelenium利用時の注意点
  Selenium IDEの活用とSeleniumの使いどころ
Selenium IDEを使う
  仕様変更時、対応コストがかかることがある