* [[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