技術Tips

Selenium WebDriver+BrowserMob ProxyでのHTTPステータスコードの取得方法

Seleniumを使ったWebシステムのテストにおいて、HTTPのステータスコードを確認する方法です。

HTTPのステータスコードはBrowserMob Proxyを使用することで取得することができます。

この記事ではSeleniumテスト環境でBrowserMob Proxyを使ったHTTPステータスコードの確認方法を検証しました。

BrowserMob Proxyの準備

Selenium単体ではHTTPレスポンス情報は取得できません。

そこでBrowserMob Proxyを使います。

 

BrowserMob Proxyでproxyを立ち上げ、Seleniumとテスト対象システム間の通信をproxy経由させることで、HTTPレスポンスを監視できます。

 

まず、BrowserMob Proxyのライブラリを以下のサイトからダウンロードします。
https://bmp.lightbody.net/

 

ダウンロードしたらzipを解凍し、browsermob-proxy-***フォルダ直下の.jarファイルとlibフォルダ内の.jarファイルをプロジェクトに追加します。

 

Selenium WebDriver+BrowserMob Proxyを使ったHTTP Status Code取得サンプル(Java)

以下のようにSelenium WebDriverのインスタンスを作る際にproxy通信の設定をします。

 

これで生成したSeleniumのWebDriverは通信にproxyを経由するようになります。

 

次に、通信監視のため、BrowserMob ProxyのResponseInterceptorインターフェイスの実装を行います。

ResponseInterceptorインターフェイスの実装クラスを作り、processメソッドをオーバライドします。

 

このprocessメソッドはHTTP通信が発生するたびに呼び出されます。

WebDriverを破棄する際に同時にproxyも停止させます。

  • driver.quit();
  • proxy.stop();

 

まとめ

Seleniumテスト環境でHTTPレスポンスを監視するには、

  • BrowserMob Proxyを使ってproxy経由の監視を行う
  • 監視処理(ResponseInterceptor)を実装しprocessメソッドを好きなようにオーバライドする
  • processメソッドはHTTP通信発生時にコールされる
  • WebDriver破棄時にproxy.stop()

Seleniumは様々な情報がネットに散らばっていて探すのが大変ですね。少しでもお役にたてれば嬉しいです。

便利なサービス、見逃していませんか?

もはや生活に欠かせない存在となったAmazonプライム。

その便利な特典やメリットをまとめましたので、まだAmazonプライム会員でない方は要チェックです。

【最新版】Amazonプライムのメリットとは?

RELATED POST