* [[selenium]]
Webブラウザ上で自動でテストをさせるテストツールです。商用では[[Mercury QuickTest Professional>http://www.itmedia.co.jp/enterprise/articles/0701/22/news005.html]]とかあります。よくできたツールなんですが、高い..
#contents

** 環境
http://www.openqa.org/selenium/より
 Selenium Core (selenium-core-0.8.2.zip)
 Selenium RC (selenium-remote-control-0.9.0.zip)
 Selenium IDE (Selenium IDE 0.8.7)
をダウンロードします(2007/09/07)。このうちSelenium IDEはFireFoxのプラグインです。
[[Selenium IDE>http://www.openqa.org/selenium-ide/]]よりインストールします。インストール後、FireFoxの表示>サイドバーを選択すると、Selenium IDEが表示されていますので、
選択します。するとサイドバーに表示されますので、赤く丸いボタンで記録してくれます。自動で記録してくれます。これだけでもまず試してみましょう。
これで記憶できましたら、その操作ログがコマンドで記録されています。~
ではそれができたら、Selenium RCです。これが優れもので、リモートから言語を使ってテストできます。たとえば、JavaでJunitからテストできてしまいます。では実際にやってみましょう。
Selenium RCを解凍した場所に、serverディレクトリがありますので、
 java -jar selenium-server.jar
で実行しておきます。TestSuiteとかのファイルがある場合は、以下のように
 java %PROXY_OPTION% -jar selenium-server.jar -htmlSuite "*ieplore" "http://www.testsitaiurl.com" "testsuite.html" "TestResult.html" -timeout 60000
ここで%PROXY_OPTION%は
 -Dhttp.proxyHost=hoge.proxy.com -Dhttp.proxyPort=8080
とか指定します。もしくは以下のサンプルでもあるようにSeleniumServerのstartをつかっても起動できます。
今回はSelenium IDEで記録したデータをEclipse上からJunitを使って動かします。ではEclipseを実行し、Javaのプロジェクトを作成します。
このとき、ライブラリにselenium-remote-control-0.9.0\serverにある
 selenium-server.jar
 selenium-server-tests.jar
とselenium-remote-control-0.9.0\javaにある
 selenium-java-client-driver.jar
 selenium-java-client-driver-tests.jar
を追加しておきます。ではSelenium IDEのファイル>テストをエクスポート>Java Selenium RCを選んでソースを開けてコピペしたのが
以下のソースです。yahooでhogeで検索して、検索後の画面でhogeがあるかを検証しています。
 package com.example.tests;
 
 import com.thoughtworks.selenium.SeleneseTestCase;
 
 public class Test extends SeleneseTestCase {
	private SeleniumServer seleniumServer; 
 
 	public void setUp() throws Exception {
		seleniumServer = new SeleniumServer();
		seleniumServer.start();
 
		super.setUp("http://www.yahoo.co.jp");
	}
 
	public void tearDown() throws Exception {
		super.tearDown();
		seleniumServer.stop();
	}
 
 	public void testTest() throws Exception {
		selenium.open("/");
		selenium.type("fp", "hoge");
		selenium.click("st");
		// selenium.waitForPageToLoad("30000");
		verifyTrue(selenium.isTextPresent("hoge"));
	}
 }
ではJUnitでテストすると見事に緑色になってくれました。ちょっとよくわからないのが、
selenium.waitForPageToLoad("30000");をコメントにしているのですが、はずすと
 com.thoughtworks.selenium.SeleniumException: 書き込みできません。
	at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:73)
となってしまいました。なんでだろ?googleではうまくいってるんですが。

** リンク
***[[これはすごい! Web案件必須 Selenium - 人気急上昇中自動テストツール>http://journal.mycom.co.jp/articles/2006/09/29/selenium/menu.html]]
***[[第14回 Selenium IDEを使ってみました>http://www.okushin.co.jp/information/tanuki14/index.php]]
画像を使ってわかりやすい説明があります。
***[[ここはSelenium HPの日本語訳ページです。>http://wiki.openqa.org/display/SEL/Japanese]]
本家のページを日本語訳されています。ありがたい。
***[[第2回:Seleniumを体感する>http://www.thinkit.co.jp/free/article/0705/2/2/]]
第4回まであります。
***[[ Selenium 0.7利用手順書(前編)>http://codezine.jp/a/article/aid/436.aspx]]
あと[[ Selenium 0.7利用手順書(後編)>http://codezine.jp/a/article/aid/452.aspx]],[[Selenium 0.7 TipsとExcelによるDB初期化>http://codezine.jp/a/article/aid/437.aspx]]もあります。
***[[[selenium]Selenium RCのページ>http://w.koshigoe.jp/study/?%5Bselenium%5DSelenium+RC%A4%CE%A5%DA%A1%BC%A5%B8]]
Selenium RCとPHPUnit3.0とのサンプルがあります。
***[[SeleniumRC ClientDriverでリモートサーバのDB初期化>http://d.hatena.ne.jp/otao/20070213]]
***[[Seleniumでスクリーンショット>http://hoshinanonikki.net/20070627.html]]
スクリーンショットを取る拡張法が書かれています。
***[[[Selenium]Selenium の新しいコマンドを作る>http://d.hatena.ne.jp/selenium_blog/20060312/1142176539]]
同じメッセージが複数回出力される場合の拡張方法があります。
***[[Selenium AES入門>http://codezine.jp/article/detail/3084]]
Auto Exec Serverか。
***
** 参考書籍
[[WEB+DB PRESS Vol36>http://www.amazon.co.jp/exec/obidos/ASIN/4774130036/worried-22]] seleniumについての解説があります。~
** コメント
-#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS