当社Webサイト

カテゴリー

Amazonサーチ

  • 07/23
    Java, Selenium, テスト post by 笹山 昭秀 @ 2009 年 7 月 23 日 10:33

    こんにちは。プロダクト&サービス事業部の笹山です。

    前回のブログ(Seleniumの自動テストを止めることなく、Flexを手動操作する方法)で「FlashSeleniumについて調査をして、このブログに公開できたら・・・」などと書きましたが、全く調査できておりません。お詫び申し上げます。

    前回のブログ執筆時後、SeleniumRCのバージョンも1.0.1に上がっていますし、FlashSeleniumもSeleniumRC1.0互換のものが出ているようです。
    ですから、現時点では「あっさり動いてしまう?」のかもしれません。

    今回もSeleniumRCネタではありますが「SeleniumRCで自己署名証明書使用のWEBアプリケーションをテストする際、Firefoxからのセキュリティ警告を表示させない方法」について書きたいと思います。

    自己署名証明書使用のWEBアプリケーションをテストする際の問題

    SSL対応のWEBアプリケーションのテストを行う際に、自己署名証明書を作成してテストすることは多いと思います。

    SeleniumRCで自己署名証明書使用のWEBアプリケーションのテストを行うことはもちろん可能です。
    しかし、面倒くさい操作が発生してしまうのです。

    サーバに接続する際に、「信頼できない接続 – 接続の安全性を確認できません」と警告が出ます。

    警告 - 信頼できない接続

    警告 - 信頼できない接続

    例外として追加しても毎回警告が表示され、そのたびに例外に追加する操作を行わなければいけません。
    これでは、SeleniumRCを用いての自動テストの意味がありません。

    問題の解決方法

    これを解決する方法が分かりました。ただしFirefoxでのみです。
    FirefoxでSeleniumServer用のProfileを作成し、SeleniumServer起動時にそのProfileを指定させれば良いのです。

    それでは、まず最初にFirefoxでSeleniumServer用のProfileを作成する手順について説明します。

    SeleniumServer用のProfile作成手順

    1. アクセサリ-ファイル名を指定して実行でFirefoxのProfileManagerを起動します
      ファイル名を指定して実行 - ProfileManager

      ファイル名を指定して実行 - ProfileManager

      firefox.exe -ProfileManager
    2. 「新しいプロファイルを作成」でSelenium用のプロファイルを作成します
      新しいプロファイルを作成

      新しいプロファイルを作成

    3. プロファイル作成ウィザードで順番に作成していきます
      ※安全のため保存先は、Selenium用のフォルダを作成し、そのフォルダを指定することをお勧めします
      プロファイル作成ウィザード

      プロファイル作成ウィザード

    4. Selenium用のプロファイル作成後、作成したプロファイルを指定して自己署名証明書使用のサイトにアクセスします
      「信頼できない接続 – 接続の安全性を確認できません」と警告が出ます
      警告 - 信頼できない接続

      警告 - 信頼できない接続

    5. 自己署名証明書使用のサイトを例外として追加し、セキュリティ例外を承認します
      例外として追加

      例外として追加

      セキュリティ例外を承認

      セキュリティ例外を承認

    後にも先にも、Firefoxで自己署名証明書使用のサイトを例外として追加する操作はこの1回だけです。

    次に、SeleniumServerへProfileを指定する方法を説明します。

    JUnitテストソースでSeleniumServer起動時にProfileを指定させるコード

    使用するProfileを指定して、SeleniumServerを起動するコードです。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    // 自己署名証明書使用のURL
    testUrl = "https://localhost:8443";
     
    // テストを行うブラウザ
    testBrowser = "*firefox";
     
    // SeleniumServerのインスタンス化
    seleniumServer = new SeleniumServer();
     
    // Selenium用プロファイルの指定 --------- ここから -------------
    RemoteControlConfiguration config = seleniumServer.getConfiguration();
    config.setFirefoxProfileTemplate(new File("D:\\firefox_selenium"));
    // Selenium用プロファイルの指定 --------- ここまで -------------
     
    // SeleniumServerの起動
    seleniumServer.start();
     
    // seleniumClientを起動
    selenium = new DefaultSelenium("localhost", 4444, testBrowser, testUrl);
    selenium.start();

    selenium-server.jarファイル実行時にProfileを指定させる方法

    上記のJUnitのテストケースではなく、別途SeleniumServerを起動してテストを行う場合は、以下のコマンドを実行してください。

    java -jar selenium-server.jar -firefoxProfileTemplate d:\\selenium-firefox

    最後に

    これで通常通りSeleniumRCで自動テストを実行すると、わずらわしい警告は出なくなるはずです。

    Firefoxのみの対処方法でしたが、IEやその他ブラウザでの解決方法はまだ分かっていません。
    調査を続行していこうと思っています。(FlashSeleniumの調査も忘れずに!)

    あわせて読みたい

    Seleniumの自動テストを止めることなく、Flexを手動操作する方法

    Tags: , , , ,

2 Responses

WP_Cloudy