GeekFactory

int128.hatenablog.com

CSV形式の試験データからSeleniumテストケースを生成

Selenium IDEを使うと画面試験を自動化できて便利です。特にSelenium IDEFirefoxのアドオンになっており、かなり機動性が高いと言えます。ちょっとした画面試験にはもってこいです。
ただ、Selenium IDEには弱点もあります。値だけ変えて同じシナリオを繰り返し使いたいとき、値を一つ一つ書き換える必要があります。Aを入力したとき、Bを入力したとき、...というテストケースを自動生成できれば便利と思い、Selenium Table Generatorを作ってみました。

シナリオの作成

Selenium IDEを起動してシナリオを作成します。シナリオとは例えば、

テキストボックスにtestdataを入力し、検索ボタンを押す。遷移先のページのテキストボックスにtestdataが表示されていることを検証する。

といったものです。シナリオ中のtestdataを様々な文字列に置き換えることで、バリエーションの試験ができます。

f:id:int128:20080517000145j:image

シナリオができたらHTMLコードを貼り付けてください。

f:id:int128:20080517000146j:image
どの項目をパラメータにするか選択します。クリックした順に番号が振られるようになっており、試験データの列番号と対応します。
f:id:int128:20080517001107j:image

試験データの作成

Excelを起動して試験データを作成します。カンマ区切り(CSV)またはタブ区切り(TSV)が使えます。量が少なければ手で作成した方が早いですね。

f:id:int128:20080517000633j:image
カンマ区切りまたはタブ区切り形式で保存し、テキストボックスに貼り付けてください。
f:id:int128:20080517000151j:image

テストケースの生成

ボタンを押すとテストケースが生成されます。表の中身を確認してみてください。正しければ、テキストボックスに表示されているHTMLをSelenium IDEに貼り付けて試験してみましょう。

f:id:int128:20080517000152j:image

適用例

上記のテストケースを実行してみたところ、以下の文字がはてな検索で文字化けすることが分かりました。まあ検索では使わないですけどね。


[error] Actual value '? ? | … ‥ ‘ ’ “ ” ( ) 〔 〕 [ ] {' did not match '〜 ‖ | … ‥ ‘ ’ “ ” ( ) 〔 〕 [ ] {'
[error] Actual value '} 〈 〉 《 》 「 」 『 』 【 】 + ? ± ×' did not match '} 〈 〉 《 》 「 」 『 』 【 】 + − ± ×'
[error] Actual value '$ ? ? % # & * @ § ☆ ★ ○ ● ◎ ◇' did not match '$ ¢ £ % # & * @ § ☆ ★ ○ ● ◎ ◇'
今日さっそく仕事でも使ってみました。Webアプリで文字化けする文字を調査するため、シフトJISの全角記号すべてに対して試験を行いました。仕様検討漏れを見つけるような試験では重宝するかもしれません。