Webアプリケーションを開発する際、みなさんはどのようにテストを行っていますか? Webアプリケーションは、ユーザーごとに異なるブラウザを使用しており、ユーザー操作も必要となるため、手作業でテストをされている方も多いと思います。また、機能改修やバグフィクス後に、リグレッションテスト(改修により既存機能への影響がないかを確認する回帰テスト)が必要となりますが、時間が取れずしっかりとテストができていない方も多いのではないでしょうか。

本記事では、これらのテストを自動化することのできる「Selenium Webdriver」(セレニウム ウェブドライバー)について紹介します。

入力フォームのバリデーション機能をチェックするデモ

簡単な入力フォームのバリデーション機能をチェックするデモを動画で紹介しましょう。入力値に対して期待するエラー文言が表示されているかのテストを実施しています。Selenium Webdriverでできることがイメージできると思います。

Selenium Webdriver とは

Seleniumは、Webアプリケーションのテストを自動化するオープンソースソフトウェアです。2011年に、Google開発していた「WebDriver」と統合し、「Selenium WebDriver」としてリリースされました。「Selenium WebDriver」の大きな特徴としては、複数言語対応とマルチブラウザ対応の2点が挙げられます。

複数言語対応

様々な言語でSeleniumのテストコードを作成することができます。現在(2015年3月)時点では以下の言語に対応しているため幅広いユーザーに使いやすくなっています。

  • Java
  • C#
  • Python
  • Ruby
  • PHP
  • Perl
  • JavaScript(Node.js)

マルチブラウザ対応

現在(2015年3月)時点では以下のブラウザに対応しています。PCのブラウザだけでなく、iPhoneやAndroidのモバイルブラウザにも対応しております。また、Appium(Selenium for Application)というツールを使えば、Webブラウザのテストだけでなく、モバイルアプリのテストも行うことができます。

  • Chrome
  • FireFox
  • InternetExplorer
  • Opera
  • iOS Safari
  • Android標準ブラウザ

Selenium Webdriverで出来ること

Selenium Webdriver は、ユーザー操作で出来ることは殆ど実行することができます。クリックやスクロール・文字入力などはもちろん、ウィンドウサイズの調整やCookieやセッション情報の書き換えも可能です。また、スクリーンショットを撮ることもできるため、レスポンシブレイアウト等の表示確認やテスト実施時のテストエビデンス(*1)として画面を残しておくことができるため、テストの用途だけでなく、自動化ツールとしても使用することができます。Selenium Webdriver は、Webサイトの管理画面やユーザーのマイページ、SinglePageApplication (SPA)などのテストに特に向いていると思います。

*1 テストエビデンスとは、テスト実施の記録(証拠)となるもので、テストを実施時のスクリーンショットなどが使われます。

次のページではNode.jsとSeleniumの導入手順について解説します。