ドキュメント

自動テストを行う

Seleniumとは

Selenium は、Web ベースアプリケーションのテスト自動化の高速開発をサポートしたツール群です。

関連サイト

主要ツール

  • Selenium-IDE:Firefoxのプラグイン
  • Selenium-RC(Remote Control):Firefox以外のWebブラウザでテストするためには必要

サポートされているブラウザ

ブラウザ Selenium-IDE Selenium-RC
Firefox 3 テストの記録と再生 テストの実行
Firefox 2 テストの記録と再生 テストの実行
IE8 × 開発中
IE7 × テストの実行
GoogleChrome × テストの実行

Seleniumについて-Selenium日本語ドキュメント より抜粋

Selenium-IDE

Selenium-IDE (統合開発環境) は、Selenium テストケースを開発するためのツールです。Webブラウザの操作を記録し、その操作に対するSeleniumコードを生成してくれるFirefoxのアドオン(拡張プラグイン)として提供されています。生成するコードの形式はHTMLや各開発言語に対応しています。

インストール

  1. ダウンロードページ よりIDEをダウンロードします。
  2. Firefoxでダウンロードすると「ソフトウェアのインストール」画面が表示されるので「今すぐインストール」を選択します。
  3. ダウンロードが完了したら、Firefoxを再起動します。
  4. 再起動の後、「ツール」メニューに「Selnium-IDE」が追加されます。

IDEの実行

Selenium-IDE を実行するには、Firefox の「ツール」メニューで「Selenium-IDE」を選択します。Selenium-IDE のウィンドウが表示されます。

URLの指定

Selenium-IDE のウィンドウの上部にある「Base URL」にてURLの指定が可能です。

記録

  1. 「ツール」メニューから「Selnium-IDE」を選択します。
  2. 右端の赤い丸のボタンは、「Record」(記録) ボタンです。ユーザーのブラウザ操作を記録します。
  3. Selenium-IDE を最初に開いたとき、「Record」ボタンはデフォルトでオンになっています。記録中は、ユーザーの操作に基づいて Selenium-IDE がテストケースにコマンドを自動的に挿入します。
  4. [ファイル] メニューの [開く]、[保存]、[名前を付けて保存] でテストケースを保存、開くことが可能です。既存のテストケースを開くと、テストケースに含まれる Selenium コマンドが [テストケース] ペインに表示されます。

テストケースの実行

テストケースの実行

「Run」ボタンをクリックすると、現在表示されているテストケースが実行されます。

テストスイートの実行

「Run All」ボタンをクリックすると、現在読み込まれているテストスイートに含まれるすべてのテストケースが実行されます。

検証値の設定

Webブラウザに表示された値を検証したい場合は、アサーションのコマンドを利用します。 アサーションコマンドは、アサーションのタイプと、アサーションの方法によりコマンドが提供されています。例えば、 assertTextPresentの例では、assertがアサーションのタイプであり、TextPresentがアサーションの方法となります。

アサーションのタイプ

assert テスト終了
verify テスト続行
waitFor 条件を満たすまで待つ

複数のテストケースをまとめる

複数のテストケースを一括実行したい場合は、「テストスイート」にまとめることで可能になります。

Selenium IDEを使ってテストシナリオを作成する際の注意事項

自動化で選択されたコマンドが対象を xpath:idRelative で選択していたとき 対象:xpath:position としないとテストケースを実行した際にエラーとなり実行できません。

テストケースを実行するとき、実行の速度が速いとエラーとなることがあります。(特に、プルダウンメニューからの選択や入力などで起きます。)実行速度を落としてみるとうまくいくことがあります。

Selenium RC

Selenium-IDE で作成したテストは、Selenium-RC を使って、コマンドラインでテストスイートの名前を指定することで、IEなどのほかのブラウザでも実行することができます。

インストール

  • Selenium RCはJavaアプリケーションとして動作するので、あらかじめJRE(バージョンは5以降)のインストールが必要です。
  • Selenium RCは、 Seleniumのダウンロードサイト から取得し、適当なディレクトリに解凍すればインストールは完了です。

テストの実行

コマンドプロンプトを開いて、Selenium-RCを解答したディレクトリの次の下記ディレクトリへ移動します。(x.x.xはSelenium-RCのバージョン)

selenium-remote-control-x.x.x/selenium-server-x.x.x

次のコマンドを実行し、Selenium-RCを実行します。 コマンドの構文:

> java -jar selenium-server.jar -htmlSuite <ブラウザ> <テスト対象サイトURL> <テストスイートファイル> <テスト結果を出力するファイル>

「-htmlSuite」オプションでは、テストスウィートの絶対パスを指定します。 ブラウザのオプションは、

  • firefox
  • iexploreproxy
  • iexplore
  • firefox3
  • googlechrome
  • firefox2
  • safari

などがあります。 たとえば、以下のような条件の場合、

Webブラウザ Firefox
テスト対象URL <notextile> http://mywebapp/</notextile>
テストスウィートファイルのパス C:\Selenium\testcases\TestSuite.html
テスト結果を出力するファイル C:\Selenium\results\result1.html

実行コマンドは以下のようになります。

> java -jar selenium-server.jar -htmlSuite *firefox http://mywebapp/ C:\Selenium\testcases\TestSuite.html C:\Selenium\results\result1.html

以上で、自動的にブラウザが起動してテストが実行され、結果がresult1.htmlファイルへ出力されます。

【補足】

ただ、このままでは即ブラウザが終了してしまうため、結果を確認するためには result1.html を開く必要が出ます。

コマンド 対象
assertEval alert('テスト終了'); true; true

最後のテストコマンドに上記のようなコマンドを設定しておくとテスト終了を alert で通知してくれます。

aipoのseleniumテスト

  1. aipoのテストシナリオをチェックアウトします。
  2. FireFox の「ツール」から「Selnium-IDE」を起動します。
  3. selenium画面、左上のファイルからテストスイートを開くを選択、テストしたいスイートを選択します。
  4. 上の画像の赤で囲まれた部分(Base URL)にテストしたいaipoのURLを入力します。そのとき、ブラウザではテストしたい画面に(userならuser、adminならadminで)ログインしておきます。
  5. テストを行います。fast、slowと書かれているバーの右側にある「テストスイート全体を実行」(再生ボタンのような形)をクリックします。テストが実行されますので、しばらくお待ちください。
  6. 完了すると、テスト結果が表示されます。緑色で書かれているテストケースが正常に完了したもの、赤で書かれているテストケースが途中終了したものとなります。赤色の途中終了したテストケースをクリックすると、右側のテーブルに行ったコマンド一覧が表示され、その中で赤い部分があると思われますのでそこで途中終了したのがわかります。また、ログにも赤色の文字で表示されていますので、そちらも確認してください。全てのテストケースが上手く動作した場合は、テストケースの下に書かれている、「failures」が0となり、バーが緑色で表示されます。
  7. テストスイートではなく、テストケース一つを単独で実行したい場合は実行したいテストケースをクリック、その後「テストスイート全体を実行」ではなく、その右にある「現在のテストケースを実行」をクリックしてください。ただし、スイート内、他のテストケースなどと連動している場合もありますので、ご注意ください。