[あすかぜ・ねっと]あすかぜ・ねっとその他 > WebDriver

WebDriver

Web アプリケーションの自動テストツール「WebDriver」に関するメモ。

WebDriver とは

WebDriver は、オープンソースソフトウェアとして開発されている Web アプリケーションの自動テストツールである。 同じくオープンソースの Web アプリケーションの自動テストツール「Selenium」とプロジェクトがマージされ、 Selenium 2.0 の一部となった。 2011/07/08 に初のリリース版として Selenium 2.0.0 が公開された。

WebDriver (Selenium 2.0) のダウンロードとインストールについては 「インストール」 ページを参照。

用語

Selenium
自動テストツールのプロジェクトの名前
Selenium 1.0
2009年6月にリリースされたバージョン。Selenium-IDE、Selenium-RC、Selenium-Grid の 3 つのコンポーネントからなる。
Selenium 2.0
2011年7月にリリースされたバージョン。Selenium 1.0 の機能に WebDriver の機能が追加される。
Selenium-IDE
Firefox のアドオン。Web アプリケーションに対するユーザ操作を記録し、Selenium テストとして保存・再生する。
Selenium-RC
サーバ・クライアント型のテスト実行ツール。複数のブラウザと複数のプログラミング言語に対応する。 Selenium 1.0 の実装では Web アプリケーションに対するプロキシサーバとして動作し、ページに JavaScript を埋め込むことで動作する。
Selenium-Grid
複数の環境で同時にテストを実行できるツール。ハブに送られたテストは Selenium-RC にリダイレクトされて実行される。
WebDriver
サーバ・クライアント型のテスト実行ツール。複数のブラウザと複数のプログラミング言語に対応する。 各ブラウザの提供する機能を呼び出して自動操作を実現する。

Selenium 1.0 と比較した WebDriver のメリット

JsonWireProtocol

WebDriver の本質はサーバ・クライアント間のプロトコルにある。 このプロトコルは http://code.google.com/p/selenium/wiki/JsonWireProtocol で定義されている。 各ブラウザ向けの WebDriver は、JsonWireProtocol のメッセージを受けて対応する動作を行うように実装される。 また、各プログラミング言語向けの API は、それぞれのプログラミング言語の流儀にしたがって定義され、 JsonWireProtocol のメッセージを送信するように実装される。

Selenium-RC 1.0 の 通信プロトコル は、command、target、value をそのままクエリとして送信するというシンプルなものだった。 Selenium 2.0 では、クライアント側で Selenium コマンドを WebDriver API に変換 して JsonWireProtocol を送信できるようになっている。

Java API

WebDriver の Java API は、 WebDriver クラスWebElement クラス を中心に構成されている。 WebDriver クラスを通してブラウザを操作し、WebElement クラスを通して任意の DOM 要素を操作できるようになっている。 例えば、www.google.com を開いて「WebDriver」を検索するテストは次のように書ける。

WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("WebDriver");
element.submit();

この例では、WebDriver を使って特定の URL を開いて要素を検索し、WebElement を使って文字列を入力している。

対応ブラウザ

対応言語

関連ページ

更新履歴

Menu


Copyright (C) 2011 asukaze, Some Rights Reserved.
Last Update: 2011/07/09
mail (at) asukaze.net