2012年2月27日月曜日

Firefox の Selenium IDE で XML(HTML)のテストを少しだけ簡単にするユーザー拡張スクリプトを書いてみた

Seleniumとは

Webアプリケーション用のテストツール。
テストケースはhtmlで記述され、<table>タグ内の<tr>タグ1つが、テストの1手順を示すので見た目にも分かりやすい。

と、本ブログのSeleniumの導入に関するリンク集01という記事に書いています。

FirefoxにはSelenium IDEというとても便利なアドオンがあるので、本エントリはそれを使う前提で書きます。

このエントリの目次
1.テストを書くのが面倒くさいと思いました
2.作成したユーザー拡張スクリプト
3.使い方
4.最後に

テストを書くのが面倒くさいと思いました
XMLやHTMLの検証などで、getElementByIdとかgetElementsByTagName を書くとき、コードが長くなるのが面倒くさかったのです。
なので簡単なユーザー拡張スクリプトを書いてテストコードを書く量を減らします。

ちなみに、Selenium のユーザー拡張スクリプト集の中に、XMLの値を検証するスクリプトがあるのですが、どうやら要素と要素名を一緒くたにして検証する仕様のようで、しっくりきませんでした。

作成したユーザー拡張スクリプト
GitHubにあげました。

4つの関数を作成しました。

__getElementsByTagName : getElementsByTagName のラッパ関数(テストコードの文字数を減らす用)
__getElementById : getElementById のラッパ関数(テストコードの文字数を減らす用)
__getXmlValue : XMLやHTMLの要素の値を取得する関数
__getXmlAttribute : XMLやHTMLの要素の属性値を取得する関数

3.使い方
まず、ユーザー拡張スクリプトの使い方から。

先ほどのGitHubのコードをコピペして、user-extensions.jsというファイル名でどこかに保存します。
で、Selenium IDEにて
「オプション」→「設定」→「Selenium Core 拡張スクリプト(user-extensions.js) のパス」
で、ファイルのパスを指定します。
Selenium IDE を再起動したら、指定したユーザー拡張スクリプトが使用できます。

次に、各関数の使い方です。

Selenium IDE での記述で説明します。
※(「コマンド」と「値」は省略します。コマンドは全てgetEvalを使用し、値は何も指定しません。)

__getElementsByTagName
対象 : __getElementsByTagName('要素名')
HTMLCollectionが取得できます。

__getElementById
対象 : __getElementById('要素のid')
HTMLElementが取得できます。

__getXmlValue (名前がいけてないですが、HTMLでも使えます orz)
対象 : __getXmlValue(何らかのHTMLElement)
要素の値が取得できます。

__getXmlAttribute (名前がいけてないですが、HTMLでも使えますorz)
対象 : __getXmlAttribute('属性名', 何らかのHTMLElement)
要素の属性値が取得できます。

以上です。

4.最後に
色々といけてない所があるかもですが、好きに改変して使用して下さい。

0 件のコメント:

コメントを投稿


Related Posts Plugin for WordPress, Blogger...