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のテストケースというのは、以下のような表形式になっているわけです。
上のCommand1からCommand2、Command3と実行していき、それぞれについて実行結果を見ていくと。
で、Commandには、Action(動作)とAccessor(属性)と、Assertion(確認)があります。
たとえば、Actionには以下のようなものがあります。他にもいっぱいあるけど、それはリファレンスを見てくれ。
ついでなので、Accessor。いろいろな情報を取得できる。まだ若干使い方がわかってないです。確認を行うなら、Assertionを使えって感じ??
さらに、Assertion。確認しましょう。おじいさんは、assertとverifyの動作の違いがまだわからんのですよ。。。
で、このリファレンスにも書いてある通り、Seleniumで「このボタンをクリック」とかを指定する場合の「このボタン」の指定方法が結構独特。
方法なんですが、Element Locatorsという形式でありまして、以下の方法がある模様。
で、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がぶっ壊れるような修正をすると、テストを作り直しイヤーンってのが目に浮かびます。
まあ、道具は道具なんで、使える所から使って楽していきたいものです。
生活のリズムが狂ってしまったおじいさんです。直すのがしんどいんですよね、これ。
さて、本題は、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のテストケースというのは、以下のような表形式になっているわけです。
Command1 | Arg1 | Arg2 |
Command2 | Arg1 | Arg2 |
Command3 | Arg1 | Arg2 |
上のCommand1からCommand2、Command3と実行していき、それぞれについて実行結果を見ていくと。
で、Commandには、Action(動作)とAccessor(属性)と、Assertion(確認)があります。
たとえば、Actionには以下のようなものがあります。他にもいっぱいあるけど、それはリファレンスを見てくれ。
Action | Arg1 | 解説 |
open | URL | 指定されたURLを開く。これがなくちゃテストが始まらない |
click | クリック対象 | 指定されたリンクやらボタンなんかをクリック |
type | 入力文字列 | 現在のフォーカスに対して文字列を入力 |
pause | 待つミリ秒 | 一時的に動作を停止(0.7にはない模様) |
ついでなので、Accessor。いろいろな情報を取得できる。まだ若干使い方がわかってないです。確認を行うなら、Assertionを使えって感じ??
Accessor | Arg1 | 解説 |
storeTitle | タイトル | 現在のページタイトルを取得 |
storeValue | 指定,値 | 指定されたものの値を取得する |
さらに、Assertion。確認しましょう。おじいさんは、assertとverifyの動作の違いがまだわからんのですよ。。。
Assertion | Arg1 | 解説 |
verifyTitle | タイトル | 現在のページタイトルが指定のものか確認 |
verifyValue | 指定,値 | 指定されたものの値がそれか確認 |
で、このリファレンスにも書いてある通り、Seleniumで「このボタンをクリック」とかを指定する場合の「このボタン」の指定方法が結構独特。
方法なんですが、Element Locatorsという形式でありまして、以下の方法がある模様。
- identifier=idまたはname
- id=id
- name=name
- dom=javascript。document.frames[0]なんちゃらみたいな形式
- xpath=xpath。これが一番使うんじゃあないかと。//a[@href="http://www.yahoo.co.jp"]みたいな感じ。でも、FFとIEで若干動きが違うとかなんとかいう話が。。。
- link=検索文字列
- 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がぶっ壊れるような修正をすると、テストを作り直しイヤーンってのが目に浮かびます。
まあ、道具は道具なんで、使える所から使って楽していきたいものです。
この記事へのコメント