kawasimaです。SIerです
少々前にこういう話が盛り上がっていたようですが、イマドキSIerがどうやってExcelスクショを撮っているか世間的に認知されていないようなので、お話しておこうと思います。
スクショの撮り方
世間ではいろいろツール化されているようですが、テストのためのスクショなので、スクショメインのツールでは本末転倒です。そこで、Seleniumと統合したテスト用ブラウザを開発しています。
セットアップ
jarファイルをダウンロードし実行します。 WindowsならばjarファイルをExplorerからダブルクリックするだけです。
https://github.com/kawasima/teslogger/releases
使うブラウザに応じてドライバのインストールが必要です。
使い方
無事起動すると、以下のようなスプラッシュ画面が立ち上がります。
テストしたいブラウザを選択してください。
そうすると、ブラウザとカメラアイコンのついたミニウィンドウが表示されます。
適当に遷移して、カメラボタンを押すと
jarファイルの位置にscreenshotsというディレクトリが作られ、その下にキャプチャ画像が撮られていきます。
「Test Case Id」の欄にテストケースのIDを入力しておけば、screenshotsのディレクトリ下にケースIDのディレクトリが作られます。
※ ウィンドウ下の「OK」「NG」ボタンは、将来的に使う予定のもので、現在(v0.1.0)は押しても何も動作しません。
自動テストで使う
ここまでは手動のテストでの使い方ですが、Seleniumで作っているので当然、自動テストもシームレスにできます。
以下のような、簡単なスクリプトを書いておき、ウィンドウ左上の「Load」ボタンを押すとファイルダイアログが開くので、スクリプトのファイルを選択します。
(to "http://www.google.com")
(take-screenshot)
(input-text "#gbqfq" "clojure")
(implicit-wait 3000)
(click "#gbqfba")
そうすると、自動的にテストを実行してくれます。キャプチャを取りたいタイミングで(take-screenshot)
を書いておくと、同じくscreenshotsに撮られていきます。
スクリプトはclj-webdriverを使っていますので、どういうコマンドがあるかはそちらのAPIをご確認ください。
clj-webdriverの優れた点は、Selenium1時代の簡単な表記のノリでSelenium2のWebDriverが動かせるというところですね。これならSIerがExcelからテストスクリプトを出力するのも簡単ですね
この程度ならVBAでもできるんだけど…
そうですね。
これまでスクショに関しては、数多くのSIerがあまたの使いやすいオリジナルツールを開発してきたことでしょう。
ですが、Excelスクショの世界は、キャプって終わりではなく
- 取得したスクショを過不足なく集めるのって骨が折れる
- スクショに対しての説明書きの追記は?
- Excelへのキレイに貼り付けるのが大変なんだけど…
- データベースの更新内容のエビデンス取得も要るよね?
などなど、まだまだ課題があります。
これらに関しても、実は解決策は作ってあります。続きはClojure夜会にてお話いたします。ぜひ足を運んでみてください!
(2014/10/16 追記)
Clojure夜会で発表したスライドで、上記課題について触れております。ご参照ください。