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」
- ログアウトアンカーをクリックするとログイン画面に遷移する