Webアプリテストツール:Selenium

こんばんは。
生活のリズムが狂ってしまったおじいさんです。直すのがしんどいんですよね、これ。
さて、本題は、Webアプリテストツールで有名になりそうなSeleniumの話です。
こんな記事を読むよりは、Web+DBのVol36を読んだ方が早いかも。


Selenium
 http://www.openqa.org/selenium/

こいつはWebアプリのテストツールです。Javascriptで可能なブラウザの動きをシュミレートしてくれるので、Ajaxを使ったサイトでもテストができます。
現在の主立ったブラウザに対応しているので、一度書けばたいていのブラウザでテストが自動化できるはず。
んでもって、こいつを使ってTDDを実践できるという話のようですが、今の所おじいさんはテストの自動ツールぐらいにしか考えてません。再帰試験には使えそうだなー。

で、とりあえず始めるには、SeleniumCoreとIDEをダウンロードする。IDEがないと素人にはテストを作れないと思われ。
その辺のやり方については、Getting Startを参照の事。なんのことはなくて、Coreを解答して目的ページに設置するだけです。で、IDEでテストケースを作って保存し、それを実行するだけ。

○テストを作るにあたって、見るべきページ
 http://wiki.openqa.org/display/SEL/Selenium+0.7+Reference+(Japanese)
 →0.7用のドキュメントの和訳。Seleniumの最新版は0.8.2なので注意。。。
 http://release.openqa.org/selenium-core/nightly/reference.html

 Seleniumのテストケースというのは、以下のような表形式になっているわけです。
 



Command1Arg1Arg2
Command2Arg1Arg2
Command3Arg1Arg2

 上のCommand1からCommand2、Command3と実行していき、それぞれについて実行結果を見ていくと。
 で、Commandには、Action(動作)とAccessor(属性)と、Assertion(確認)があります。
 たとえば、Actionには以下のようなものがあります。他にもいっぱいあるけど、それはリファレンスを見てくれ。
 





ActionArg1解説
openURL指定されたURLを開く。これがなくちゃテストが始まらない
clickクリック対象指定されたリンクやらボタンなんかをクリック
type入力文字列現在のフォーカスに対して文字列を入力
pause待つミリ秒一時的に動作を停止(0.7にはない模様)

 ついでなので、Accessor。いろいろな情報を取得できる。まだ若干使い方がわかってないです。確認を行うなら、Assertionを使えって感じ??
 



AccessorArg1解説
storeTitle タイトル現在のページタイトルを取得
storeValue 指定,値指定されたものの値を取得する

 さらに、Assertion。確認しましょう。おじいさんは、assertとverifyの動作の違いがまだわからんのですよ。。。
 



AssertionArg1解説
verifyTitle タイトル現在のページタイトルが指定のものか確認
verifyValue 指定,値指定されたものの値がそれか確認


 で、このリファレンスにも書いてある通り、Seleniumで「このボタンをクリック」とかを指定する場合の「このボタン」の指定方法が結構独特。
 方法なんですが、Element Locatorsという形式でありまして、以下の方法がある模様。
 

  1. identifier=idまたはname
  2. id=id
  3. name=name
  4. dom=javascript。document.frames[0]なんちゃらみたいな形式
  5. xpath=xpath。これが一番使うんじゃあないかと。//a[@href="http://www.yahoo.co.jp"]みたいな感じ。でも、FFとIEで若干動きが違うとかなんとかいう話が。。。
  6. link=検索文字列
  7. css=css構文
     

 で、xpathを手で書くのがあまりにも面倒なので、IDEを使う、という事になるわけです。普通のWebアプリなら、idとnameが割り振りしてあって問題ないかもしれませんが。

○参考記事
 http://journal.mycom.co.jp/articles/2006/09/29/selenium/
 http://d.hatena.ne.jp/keyword/Selenium
 http://cl.pocari.org/2006-02-15-3.html


xpathがぶっ壊れるような修正をすると、テストを作り直しイヤーンってのが目に浮かびます。
まあ、道具は道具なんで、使える所から使って楽していきたいものです。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック