Skip to content

Pitaliumを使ってSafariでリグレッションテストを実行

by : 2015/11/09

Windows環境しかないのですが、Safariでのデバッグは可能でしょうか。いえ、現状ではMac OSXが必要です。残念なことに、すでにApple社はWindows版のSafariを提供していません。

過去のSafariバイナリをインストールして稼働することもできるようですが、Appleがサポートを終了していること、さらにHTML5の実装も変わっていることからWindowsでSafariを対応することは現実的ではないでしょう。今回は、MacOS Xによる、Safariでのデバッグ方法を確認していきましょう。

尚、本記事の環境については、以下の通りです。

  • MacOS X 10.10.5
  • Safari バージョン 8.0.8 (10600.8.9)

前回から利用している、Selenium HubサーバとNodeサーバを引き続き利用していきましょう。環境についても、各ディレクトリを以下の通り利用します。適宜環境に合わせて読み替えて下さい。

Seleniumサーバーパス: /pitlaium  
ソースコード: /pitalium-test

Mac OSX Safariを利用したデバッグ方法

以前まで、Safari拡張としてSeleniumのSafariDriverをMacで作成しなければならず、そのために、証明書を取得したりするなど、難易度が高めの設定でした。しかし最近はSeleniumサイドが、Safari拡張用の実行ファイルを用意しているので、インストールはクリックだけで済むようになりました。証明書取得など、全く必要ありませんし、AppleIDも必要ありません(Mac使ってる人は持ってると思いますが…)。

SafariDriverのインストール

SafariDriver Downloadsのダウンロードサイトの、SafariDriverのセクションよりSafariDriver.safariextz をダウンロードして下さい。

safaridriver
SafariDriver Downloads

あとは、ダウンロードSafariDriver.safariextz をクリックするとSafari拡張インストールが始まります。無事インストールが終わったら、Safariの環境設定を開き、「機能拡張」をクリックして下さい。

次の画面の通り、WebDriverが無事インストールされていればOKです。
この時、機能拡張のスイッチが「入」側になっているか確認しておいて下さい。

SafariDriver Downloads
SafariDriver Downloads

Nodeサーバの設定

Nodeサーバには次のNodeConfigファイルをSafari向けに更新します。Safariの定義を追加して保存しておきましょう。

/pitalium/NodeConfigBrowser.json

{
  "capabilities": [
    {
      "browserName": "firefox",
      "maxInstances": 3,
      "seleniumProtocol": "WebDriver"
    },
    {
      "browserName": "chrome",
      "maxInstances": 3,
      "seleniumProtocol": "WebDriver"
    },
    {
      "browserName": "safari",
      "maxInstances": 3,
      "seleniumProtocol": "WebDriver"
    }
  ],
  "configuration": {
    "hub": "http://localhost:4444/grid/register"
  }
}

Selenium Hubサーバを立ち上げます。

$ cd /pitalium
$ java -jar /pitalium/selenium-server-standalone-2.48.2.jar -role hub

次に、Nodeサーバを起動します。

$ cd /pitalium
$ java -jar selenium-server-standalone-2.48.2.jar \
    -role webdriver \
    -nodeConfig NodeConfigBrowser.json \
    -Dwebdriver.chrome.driver=chromedriver

Seleniumコンソールをブラウザで確認して、Safariが設定されていればOKです。

http://localhost:4444/grid/console

gridconsole

Selenium Console

テストコード側の設定

テストコード側で利用するブラウザを設定します。Safariの設定を記述して保存します。

/pitalium-test/src/test/resources/capabilities.json

[
  {
    "platform": "MAC",
    "browserName": "safari"
  }
]

Safariでテスト実行

後はこれまでと同様にテストを実行するだけです。

$ gradle build

もしくは、こちらで可能です。

$ gradle clean test

実行後には、テスト結果がHTMLで作成されますので、以下にあるテスト結果を確認しましょう。

/pitanium-test/build/reports/tests/index.html

最後に

Mac OSXのSafariでもPitaliumを利用してテストが可能です。以前までは、Safari開発者の証明書取得とWebDriverのコンパイルもしなければならず、
WebDriverの作成自体が困難だったのではないでしょうか。

現在ではWebDriverの提供があるため、インストールは非常に簡単です。こちらもサーバ設定さえクリアしてしまえば、他のブラウザ同様、特に問題になることはないでしょう。

これを機会にぜひMacOSX Safariでのテストも検討して下さい。

Pitaliumにご興味のある方は、チュートリアル(Pitalium:hifiveリグレッションテストライブラリ) – hifiveも参考にして下さい。

コメントは停止中です。

%d人のブロガーが「いいね」をつけました。