つれづれなるままに。

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

Selenium VBA

本家サイトを見るとわかりますが、Seleniumは、ブラウザーをテスト(操作)する為いろいろな言語に対応しています。
Java,python,C#,Ruby また、公式ではないですが PHPなども対応しているので使い慣れた言語を使ってテストができます。

さて、テストを行う際にはチェックリストを作成するのが大半だと思うのですが
チェックリストの作成にExcelを使っていますよね?
テストデータのパターンの検討や、エビデンスとして残すのに便利ですから。

で、チェックリストに作成したテスト手順をそのまま、実行に使えるとさらにすばらしいと思う訳です。
これまでにも、

"Excelenium"(エクセレニウム)で,快適な自動回帰テストを  (Seleniumのテストスクリプトとテスト仕様書を自動生成)

とか

Seleniumを使いやすくするために (1)


といった記事があります。

どちらもExcelでスクリプトを作成し、これをIDEもしくは RCで実行させています。
これによりデータの可変性などをあげている訳です。

ただ、この実行方法ではテスト結果をチェックリストに反映するのは手動になります。
それが残念。

と、思っていたのですが、Excelには VBAという言語が実装されています。
ならば、VBAからSeleniumの実行をおこなえばよいのでは? と考えた訳です。

で、SeleniumRCを起動しておいて VBAからコマンドを投げると、 普通にブラウザが起動し、URLに遷移しました!!
「これはいける!!」と思っていたのですが、
同じようなことを考える人は世界中に居る訳ですでに、実装版がありました。

SeleniumVBA

どうやら、VBAで実装したのではなく、 .NETのラッパーを作って動作させている模様。
さすがです。
しかも、SeleniumIDEでレコーディングしたスクリプトをエクスポートする為のアドオンまで作ってあります。

すばらしい!!

考え方を変えると、Excelからブラウザを通して値を取得する場合 COMを使って IEを起動しスクレイピングをしていましたが
これからは、こちらを使うという選択肢も増えたということになりますね。