FirefoxとSelenium IDEでスクリーンショットを次々撮ってみよう

FirefoxとSelenium IDEでスクリーンショットを次々撮ってみよう

イメージ

こんにちは、ゲリラ豪雨にビクビクしているinoueです。夕立よりもスコールのような雨が多いし、もう日本は温帯じゃないですね。

さて、webアプリケーションをテストする際、様々なアカウントでログインして、そのログイン後ページの表示結果を確認したい、なんて場合が多々あります。

最も原始的な方法は「1つひとつ手動でログインして確認する」だと思いますが、テスト対象が数十ある場合など…面倒ですよね。
このような状況で、プログラマなら当然「なんとか自動化できないものか」と考えるのではないでしょうか。

webページの確認ならば、スクリーンショットが取得できればOK。あとはログイン、ログアウトの操作を繰り返し実行できれば…、ということでテストツールSelenium IDEの登場です。

Seleniumの現行バージョンには、ページのスクリーンショットを取得するためのコマンド captureEntirePageScreenshot が用意されています。

captureEntirePageScreenshot(filename, kwargs)
引数)
filename:スクリーンショットの保存名(フルパスで指定)
kwargs: スクリーンショットの背景色を "background=#FFFFFF" のように指定
<tr>
	
	<td>captureEntirePageScreenshot</td>
	<td>C:\example\capture01.png</td>
	<td>background=#FFFFFF</td>
</tr>

スクリーンショットのツールは「Screengrab!」を使用します。Selenium IDEとともにアドオンを別途入手してください。

このコマンドを使って、次のような手順でテストスイートを作ってしまえば、数件でも数十件でも連続スクリーンショット取得が可能です。

  1. 保存先パスの定義
  2. アカウントA のログイン情報の定義
  3. スクリーンショット取得の実行
  4. アカウントB のログイン情報の定義
  5. スクリーンショット取得の実行

値を変数化してSeleniumで使用する方法は、以前のエントリー「[Selenium]storeコマンドで効率的にテストを行う方法」を参考にしてください。

スクリーンショット取得の実行部分は下の図のようなテストケースで実現できます。

スクリーンショット取得の実行例

ここでは、スクリーンショット取得が完了したあとにログアウトを実行するよう captureEntirePageScreenshotAndWait を使用しています。
このあたりは適宜使い分けしてみてください。
もし、連続実行がうまくいかない場合は、テスト実行のスピートをゆっくりめにするなど調整してみてください。

参考情報
  • このエントリーをはてなブックマークに追加

この記事を読んだ人にオススメ