つれづれなるままに。

webテストの自動化について備忘録のつもりで書いています

Selenium Excel AddIn

一部のツイッターでも話題になっている このソフト。


Selenium Excel AddIn
https://seleniumexceladdin.codeplex.com

内容的には その名の通り Excelから Seleniumが使えるようになる Addin。
スクリーンショットを見るとわかりますが、かなり作り込まれています。

個人的には Excel 好きでかつ、パラメータとなるデータの管理などを考えるとSeleniumExcelの組み合わせはもっと浸透しても良いと思っていたので早速試してみました。

インストーラーはwindowsの流儀に沿った形で、.NET系 office系のSDKぽいものがインストールされます。

インストールが終わり、Excelを起動すると リボンバーに Selenium が追加されているのがわかります。

スクリプトは seleniumIDEと同じ html形式(いわゆるselenise)なので これまでIDEを使っていた人には抵抗無く使えます。htmlではテーブルタグに並んでいましたが、シートでは横並びになっているだけです。また、その横には実行結果とエビデンスへのテキストリンクが記入されるセルが並んでいます。
エビデンスは実行時にエラーが発生すると、新しいシートに実行時の状態とスクリーンショットが貼付けられますので、便利です。

また、テストデータボタンを押すと、エクセルのデータテーブル形式でテストで使用するデータを記述できるシートが作成されます。最初は column1といったデータラベルが入っていますが、これを書き換えると、スクリプト内で使用できるようになります。使用する際は IDEにならって 
${データラベル}
の形式で記述できます。使用するときは 「テストケースリスト」パネル内の リンクアイコンを押下すればスクリプトとデータシートを連結させることができます。
例えば、
1 Yahoo!Japan トップを開く
2 キーワードを入力
3 検索ボタンを押す
と言ったシナリオを作成し、キーワード部分を
type ${keyword}
の、ようにしておけば、テストデータに記入したキーワード分だけ繰り返しシナリオを実行してくれます。

ほかにも、コマンドが拡張されており
VBA」というコマンドがあり、これは VBAで記述したマクロを呼び出すことができるものです
また、COMに対応しているので必ずしも Excelから呼び出さなくての外から呼び出すことも可能になっているようです(未確認)


とりあえず、お試しでここまで試したのですが、これから調べたいところは

  • マクロや、シート上の値をスクリプト内で使用することができるのか?
  • 実行するブラウザの指定を動的に変更できるか?
  • SeleniumGridに対応している?
  • スクリーンショットの保存は?

などなど、いろいろあります。

また、現時点で気になったところは

  • ヘルプはどこにあるのでしょう???(どこまでコマンドが実装されているのか不明です)
  • 既存のIDEで記録したシナリオを読み込む機能があるのですが、URLにパラメータの区切り文字となる 「&」があると読み込めないようです。


以前に記事にした SeleniumVBAとは異なるアプローチで Excelにバインドしている訳ですが、シナリオに制御構文が必要かどうかでどちらを使うかが分かれるのではないかと思います。