スタッフブログ
satoです。
WebアプリケーションのテストといえばSeleniumが有名です。
Seleniumは便利なのですが、HTMLでテストケースを書くのは面倒です。
通常はSelenium IDEを使うと思いますが、そもそもプログラマーはGUIを叩くのが面倒というケースが多いです。
Seleniumのプロダクトの中にSelenium RCというのがあります。
RCはRemote Controlの略で、その名の通りSeleniumをリモートから操作することができます。
操作に使う言語はJava/Perl/PHP/Ruby等多種多様に対応しているので、自分の好きな言語でテストを書くことができます。
これにより、例えばGUIの無い環境から、Selenium RCのサーバを動かしているPCでアプリケーションのテストを行うことが可能になります。
Selenium IDEの出力も、HTMLだけではなく各言語の形式で出力することができるようになっているので、ベースはSelenium IDEで作って、細かい調整は直接編集する、ということもできます。
サーバ側の使い方は簡単で、ダウンロードしたファイルの中の、selenium-server-[バージョン名]/selenium-server.jarを実行する(java -jar [ファイル名])だけです。当然JREが必要になります。
Windows Vistaの場合は管理者権限で動かす必要があります。
クライアント側は、PHPで動かす場合はPHPUnitが必要です。
さらに、Testing_Seleniumが必要なので、
でインストールします。
実際には以下のようなコードで動かすことになります。(Selenium RCに付属のサンプルを多少変更したものです)
Firefoxでは動かなかったのでIE(7)にしています。
これをphpunitで動かすとサーバ上で動作すると思います。
詳しくはドキュメントを参照してください。
テストケースを用意するのも簡単ではないので、できるだけ作りやすい方法で作業できるようにしておくといいと思います。
また個人的には、Selenium RCを使うと、Selenium本体のファイルを置いておかなくてもいい(恐らくjarに全部含まれている)のが好きです。
WebアプリケーションのテストといえばSeleniumが有名です。
Seleniumは便利なのですが、HTMLでテストケースを書くのは面倒です。
通常はSelenium IDEを使うと思いますが、そもそもプログラマーはGUIを叩くのが面倒というケースが多いです。
Seleniumのプロダクトの中にSelenium RCというのがあります。
RCはRemote Controlの略で、その名の通りSeleniumをリモートから操作することができます。
操作に使う言語はJava/Perl/PHP/Ruby等多種多様に対応しているので、自分の好きな言語でテストを書くことができます。
これにより、例えばGUIの無い環境から、Selenium RCのサーバを動かしているPCでアプリケーションのテストを行うことが可能になります。
Selenium IDEの出力も、HTMLだけではなく各言語の形式で出力することができるようになっているので、ベースはSelenium IDEで作って、細かい調整は直接編集する、ということもできます。
サーバ側の使い方は簡単で、ダウンロードしたファイルの中の、selenium-server-[バージョン名]/selenium-server.jarを実行する(java -jar [ファイル名])だけです。当然JREが必要になります。
Windows Vistaの場合は管理者権限で動かす必要があります。
クライアント側は、PHPで動かす場合はPHPUnitが必要です。
pear channel-discover pear.phpunit.de pear install phpunit/PHPUnit
さらに、Testing_Seleniumが必要なので、
pear install Testing_Selenium-beta
でインストールします。
実際には以下のようなコードで動かすことになります。(Selenium RCに付属のサンプルを多少変更したものです)
Firefoxでは動かなかったのでIE(7)にしています。
<?php require_once 'Testing/Selenium.php'; require_once 'PHPUnit/Framework/TestCase.php'; class GoogleTest extends PHPUnit_Framework_TestCase { private $selenium; public function setUp() { $this->selenium = new Testing_Selenium("*iexplore", "http://www.google.com", "192.168.1.1"); // 192.168.1.1はSelenium RCサーバのIPアドレス。同じPC上で行う場合は省略可 $this->selenium->start(); } public function tearDown() { $this->selenium->stop(); } public function testGoogle() { $this->selenium->open("/webhp"); $this->selenium->type("q", "hello world"); $this->selenium->click("btnG"); $this->selenium->waitForPageToLoad(10000); $this->assertRegExp("/Google/", $this->selenium->getTitle()); } }
これをphpunitで動かすとサーバ上で動作すると思います。
詳しくはドキュメントを参照してください。
テストケースを用意するのも簡単ではないので、できるだけ作りやすい方法で作業できるようにしておくといいと思います。
また個人的には、Selenium RCを使うと、Selenium本体のファイルを置いておかなくてもいい(恐らくjarに全部含まれている)のが好きです。