Home‎ > ‎ProgramTool‎ > ‎

Selenium

090325_11_07

そもそもの使い方を書いてなかったので、メモ

#まず、使うブラウザへのパスを通しておいてやる
#.bashprofileにでもかいておく
export PATH="${PATH};/Users/ytesaki/Applications/Firefox.app/Contents/MacOS/"

#seleniumサーバの起動
java  -jar selenium-server.jar

#後は、テストファイル実行、下のはrubyの場合
ruby test.rb

090315_23_03

触ってないうちに、ver1.0β2 とやらになっていた。
seleniumIDEと、seleniumRC のrubyのをちょっと触ってみたのだが、
seleniumIDEの方でちょっと苦労した。

JavaScriptの変数の値とかをみるには、getEval ってのを使うのだが、
まず、Seleniumとテストの対象となるwindowは異なる実行環境なのだ。
だから、window にアクセスするには、this.page().getCurrentWindow() というような形でとってくることになる。
更にβ2かららしいのだが、window で、a というオブジェクトをつくったとしよう。
通常は、 window.a でアクセスできるし、
win = this.page().getCurrentWindow();
とでもしておけば、 win.a でアクセスできるはずなのだが、これができない。
XPCNativeWrapper の為らしい。
winorg = win.wrappedJSObject;
winorg.a でアクセスできるようになる。
後、firebugのconsole も winorg.console.info(winorg.a);
とかで、使える。
ちょっと、遠回りしてやるとアクセスできるようになるらしい。
http://colo-ri.jp/develop/2008/07/selenium10b2xpcnativewrapper.html

しかしだね。これだと、RC から ruby でテストするためのコードと違ってくるんだよね。
ま、そもそも、getEvalは、飛ばしちゃうみたいなんだけども。
テンプレかきかえれば、なんとかなるのかな?


080625_17_58

http://seleniumhq.org/


Javaで書かれた、opensourceのテストツール なのだが、いわゆるユニットレベルの
テストではなく、統合テストを行う為のツールだ。

つまり、「ブラウザでURLを開く > フォームに入力 > 確認 >完了」
みたいなプロセスがうまくいっているか?
不正な操作に対して、正しくエラー処理を行っているか?
などをテストするわけだね。

こういったテストは、特に対応しなければならない環境が増えてきたり途中で修正が入ったりすると、
対応が大変だし、非常に単調な作業でもあるので、苦痛だったりする。

で、人間様の代わりに実際にブラウザをロボットのようにパイロットしてくれて、環境毎に同じテストを繰り返し行ったり
してくれるのが、seleniumというわけ。

ちなみに、テストを作る際にも、ブラウザの操作(Firefox)をキャプチャして、スケルトンを作るのを手伝ったりする機能もある。
イメージとしては、フォトショップとかの アクションを記録して、カスタムして、
多くのファイルに繰り返し適用させるのに似ている。

テストは、HTMLでも書けるし、プログラマなら、Java,Perl,Ruby,PHP などで書いても良い。

もちろん、開発の方にはタッチしない、WEBデザイナーやコーダーの人は、Java いれるの?
って方もいるだろうし、全員にお勧めするようなツールではないと思うけど、
Engineer、programmer、後 専門でCodingやQAを担当する人も触ってみておいた方が良いんじゃないかと思う。

http://www.thinkit.co.jp/free/article/0705/2/1/

http://codezine.jp/a/article.aspx?aid=436
http://codezine.jp/a/article/aid/452.aspx
http://codezine.jp/a/article/aid/437.aspx

http://wiki.openqa.org/display/SEL/Selenium+0.7+Reference+(Japanese)

余談だけど、Seleniumは随分前に、一度触るだけ触って忘れていたんだよね。
RubyKaigiに参加して、Rspecと組み合わせて結構使われているらしいというのを知った。
今月のWEB+DBにも、Rspecでのテストの特集で触れられているほか、
iKnow(英語の学習サービス、知らない人は使ってみよう)なんかのQA(Quality Assurance 品質保証)
でも使われているらしい。

おいらは、サイトカタリストのcodeセットを書くときのテストにでも使えないかなと思っている。

※この記事は、社内向けのSeleniumの紹介を若干書き直したモノです。

Comments