実践! PageObjectパターンによる「Selenium2」テストケース改善チュートリアル

CodeZine / 2013年12月13日 14時0分

図8. 画面仕様変更によるコンパイルエラー

 本シリーズは、WebブラウザをUIとして利用した業務システムやアプリケーション(以下、Webシステム、Webアプリケーション)のテストをテーマとして、Webブラウザを使ったテストを自動化するOSSのツール「Selenium2」を紹介します。業務システム開発の現場で適用してきたノウハウを元に、これまでSelenium2について知らなかった人から以前使った経験がある人まで、より実践的な「使える」内容を盛り込んでいきたいと思います。

■1. はじめに

 これまでの連載で、Selenium2を利用することにより、ブラウザテストの作成、自動実行がとても簡単にできることをお分かりいただけたかと思います。

 しかし、実際に導入してみるといくつかの問題点に気が付くことでしょう。もっとも代表的な問題は、画面仕様の変更によるテストコードの修正や、テストの失敗です。Selenium IDEが生成するテストコードは画面仕様と強く結び付いているため、画面仕様が変更された場合にはテストコードも修正する必要があります。テストコードの数が少ないうちは一括置換などで対応できますが、テストコードの数が増すに連れて修正コストが跳ね上がり、ついつい後回しにされ、最終的にはテストが失敗しても放置されるようになってしまいます。これでは、ブラウザテストを自動化した意味がありません。

 連載最終回となる今回は、Selenium IDEが生成したテストコードをPageObjectパターンという手法を用いて改善し、画面仕様の変更に対応していく様子を、チュートリアル形式で紹介します。

■2. 実行環境

 今回、紹介するテストコードは、以下の環境で動作確認を行っています。

OS:Windows 7 Java:1.7.0_17 Firefox:25.0 Selenium Selenium IDE 2.4.0 selenium-2.37.1(Selenium Client & WebDriver)  サンプルアプリケーションはHerokuにデプロイしていますので、ご自由にご利用ください。サンプルアプリケーションとテストのソースコードは、本記事のサンプルファイルよりダウンロードすることができます。テストの実行方法などについては、ダウンロードファイルに含まれているREADME.mdをご覧ください。

■3. サンプルアプリケーション仕様

 サンプルアプリケーションの仕様は以下のとおりです。

ログイン画面 タイトルは「Login」 メールアドレスとパスワードを入力してログインする ログインに失敗するとログイン画面に遷移する ログインに成功するとホーム画面に遷移する ホーム画面 タイトルは「Home」 ログアウトアンカーをクリックするとログイン画面に遷移する 図1. 画面遷移図


図2. ログイン画面


図3. ホーム画面




CodeZine

トピックスRSS

ランキング