2011/12/25更新

[Selenium2] 自動テスト、画面キャプチャも自動で取得してしまおう

このエントリーをはてなブックマークに追加      

こんにちは、@yoheiMuneです。
今日は、Seleniumの機能で、画面キャプチャを取得する機能を学んだので、ブログに残しておきたいと思います。
なお、Seleniumとはとか、使い方は、以下を参考にみてください。
Selenium2を使ってWebテストを自動化に挑戦!!基本編
Seleniumを用いた自動テストで、ダイアログもテストしてしまう

画像




Seleniumを使って画面キャプチャを取得する

以下のような数行で、画面キャプチャが取れてしまいます。驚き(`・ω・´)
それもスクロールが必要な画面は、スクロール分まで全部取ってくれます。キャプチャ画像が縦長になって、画面全部が入っている感じです。

// screen capture.
File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(srcFile, new File("./test003.png"));


上記の例では、TakesScreenshotというインターフェースにdriverインスタンスをダウンキャストして、getScreenshotAsメソッドで、Fileオブジェクトとして、画面キャプチャを取得します。
その後、FileUtilsという便利なクラスを使って、javaの実行ディレクトリに「test003.png」という名前で画像ファイルを作成しています。

なお、WebDriverのインスタンスの作り方や、画面遷移方法などは、上記のリンク先ページを参考にしてみて下さい。




最後に

スクリーンショットを自動的に取得出来るとは、すばらしいですね(*´∇`*)
画面のテストでめんどくさい点として、テストの実績として画面キャプチャを取る点もありますが、それが自動とはありがたい限りです。

次くらいは、サンプルWebアプリケーションを作って、実際にSeleniumを用いたテストを出来たら良いな。






こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。