[Selenium2] 自動テスト、画面キャプチャも自動で取得してしまおう
こんにちは、@yoheiMuneです。
今日は、Seleniumの機能で、画面キャプチャを取得する機能を学んだので、ブログに残しておきたいと思います。
なお、Seleniumとはとか、使い方は、以下を参考にみてください。
Selenium2を使ってWebテストを自動化に挑戦!!基本編
Seleniumを用いた自動テストで、ダイアログもテストしてしまう
それもスクロールが必要な画面は、スクロール分まで全部取ってくれます。キャプチャ画像が縦長になって、画面全部が入っている感じです。
上記の例では、TakesScreenshotというインターフェースにdriverインスタンスをダウンキャストして、getScreenshotAsメソッドで、Fileオブジェクトとして、画面キャプチャを取得します。
その後、FileUtilsという便利なクラスを使って、javaの実行ディレクトリに「test003.png」という名前で画像ファイルを作成しています。
なお、WebDriverのインスタンスの作り方や、画面遷移方法などは、上記のリンク先ページを参考にしてみて下さい。
画面のテストでめんどくさい点として、テストの実績として画面キャプチャを取る点もありますが、それが自動とはありがたい限りです。
次くらいは、サンプルWebアプリケーションを作って、実際にSeleniumを用いたテストを出来たら良いな。
今日は、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を用いたテストを出来たら良いな。