Koshigoe Hiki  Index  Search  Changes  RSS  Login

[Selenium]SeleniumRC

概要

リモートのテストマシン上でブラウザを開き、その上でSeleniumテストを実行する事が出来ます。

テストマシンとの接続から、ブラウザのオープン、Seleniumテスト、ブラウザのクローズ、切断まで、各種プログラミング言語で記述する事が出来ます。

  • 2006/12/08時点でこのドキュメントは編集中です。
  • このドキュメント内ではSeleniumRC0.9.0を前提としています

準備

Selenium Remote Control: Downloadsから利用するバージョンのパッケージをダウンロードします。ダウンロード後、適当なディレクトリに展開してください(インストール作業はありません)。

Java実行環境

SeleniumRCのサーバプログラムはJavaで記述されているため、実行にはJava実行環境が必要です。これはJRE(Java Runtime Environment)1.5.0以上となります。要件を見たいしていない場合、サーバ環境にインストールしてください。

Seleniumサーバ

server/selenium-server.jarがSeleniumサーバです。

  • seleniumサーバはJavaで記述されたJettyで動作します。

以下を実行するとヘルプが表示されます。オプションなどを確認してください。

java -jar /path/to/selenium-server.jar -help

注)以下の邦訳の正確性は保証しません。

  • -port <nnnn>
    • ポート番号を指定出来ます(デフォルトで4444)
  • -timeout <nnnn>
    • 接続切れまでのタイムアウトを指定出来ます
  • -interactive
    • 対話形式で起動します
  • -multiWindow
    • Seleniumテストでポップアップウィンドウやフレームをサポートします
      • Selenium Coreの性質上、フレームページのテストが正常に動作しないため、フレームページを対象にする場合に有効(テスト対象ページが別ウィンドウで実行される?)
  • -forcedBrowserMode <browser>
    • 利用するブラウザを固定します(getNewBrowserSessionによる指定を無視)
  • -userExtensions <file>
    • javascriptで記述されたSeleniumのユーザ拡張ファイルを指定して読み込ませます
  • -browserSessionReuse
    • テストごとにセッションを変更せず使い回します
  • -alwaysProxy
    • 常にproxyを通過します
  • -firefoxProfileTemplate <dir>
    • Firefoxでテストする場合、通常は空のプロファイルを利用します。
    • 任意のプロファイルディレクトリを指定した場合、それを利用させる事が出来ます
  • -debug
    • デバッグモード
  • -htmlSuite <browser> <startURL> <suiteFile> <resultFile>
    • SeleniumCoreのHTMLで記述されたテストスイートを実行します
  • -proxyInjectionMode
    • Seleniumサーバがテストの全ての内容のためのproxyサーバとして機能します
    • 複数のドメインにアクセスする事が可能になります
    • このモードでは追加オプションが指定可能です
  • proxyInjectionModeの追加オプション
    • -dontInjectRegex <regex>
      • proxyを回避するための正規表現パターンを指定出来ます
    • -userInjection <file>
      • 全てのページに適用するJavaScriptしたファイルを指定出来ます
    • -userContentTransformation <regex> <replacement>
      • テストHTMLの内容を置換します(http->httpsなど)

インタラクティブモード

SeleniumRCサーバを対話形式で実行する事が出来ます。

java -jar /path/to/selenium-server.jar -interactive

プロンプト文字は表示されませんが、表示が止まった段階でコマンドを入力して実行する事が出来ます。

ブラウザとURLを指定してセッションを開始します。

cmd=getNewBrowserSession&1=*firefox&2=http://www.google.com

上記コマンドが成功すると、Firefoxが立ち上がり以下のメッセージが表示されます。ここで表示されたセッションIDを利用してコマンドを実行します。

Got result: OK,81854 on session 81854

コマンド

コマンドの形式は、cmd,1,2,sessionIdというパラメータを&区切りで作ります。

  • cmd
  • 1
    • 第1引数
  • 2
    • 第2引数
  • sessionId
    • ブラウザセッションID
  • @todo
    • コマンドの種類はどこで調べればいいのでしょうか?

クライアントドライバ

各種プログラミング言語用にドライバが用意されています。

PHPUnit3.0

PHPUnit3.0からSeleniumRCを利用してテストを実行する事が出来ます。

サンプル

<?php
require_once 'PHPUnit/Extensions/SeleniumTestCase.php';

class SeleniumRCTest extends PHPUnit_Extensions_SeleniumTestCase
{
    protected function setUp()
    {
        $this->setBrowser('*firefox');
        $this->setBrowserUrl('http://blog.koshigoe.jp/');
    }

    public function testTitle()
    {
        $this->open('/');
        $this->assertTitleEquals('KoshigoeBLOG');
    }
}

?>
Last modified:2007/01/09 23:06:05
Keyword(s):[selenium]
References:[Selenium]