Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Selenium AESによるリグレッションテストの導入

プロジェクトにおけるSelenium AESの利用例

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/06/11 14:00

 Selenium Auto Exec Server(Selenium AES)は、Seleniumによる継続的なリグレッションテストを行うことを目的としたツールです。本稿では、Selenium AESを使ったリグレッションテストを行う際の設定方法について説明します。

目次

はじめに

 「Selenium Auto Exec Server」(以降、Selenium AES)は、Seleniumによる継続的なリグレッションテストを行うことを目的としたツールです。

 本記事では、実際のプロジェクトを想定し、Selenium AESを使ったリグレッションテストの運用方法について説明します。Selenium AESで提供される機能などについては、前回の記事『Selenium AES入門』を参照してください。

対象読者

 Webアプリケーションの開発者を対象としています。

本記事で説明するリグレッションテストの内容

 下記のような運用を想定し、Selenium AESの導入方法を説明していきます。

毎日決められた時刻にSeleniumによるテストを実行

 Seleniumによるリグレッションテストを、毎日決められた時刻に実施します。定期的にアプリケーションの正常性を確認することにより、デグレなどの問題の有無を、すぐに検出することができます。

 本記事では、対象アプリケーションの定期的なビルド方法については触れませんが、Selenium AESでテストを実行する前に、CI(Continuous Integration)ツールなどの、最新のソースコードでアプリケーションをビルドする仕組みを導入しておくと良いと思います。

テスト結果をメールで通知

 テスト結果をメールで通知することにより、いちいちSelenium AESにアクセスせずとも、テスト結果を参照することができます。

テストケースをSubversionで管理

 ソースコードと同様に、テストケースもバージョン管理の対象としておく(ソースコードと同期をとっておく)のが望ましいと考えます。

 Selenium AESでは、Subversionのリポジトリからテストケースを取得し、テストを実行することができます。これにより、テスト用のPC上に手動でテストケースを配置するようなことをせずに、常に最新のテストケースでテストを実行できます。

 他のバージョン管理システムを利用している場合には、設定項目の「beforeCommand」(テスト実行前に実行するコマンドを指定)で対応可能な場合もあると思いますので、ご確認ください。

Selenium AESのダウンロード

 テストを実行するPC上に、Selenium AESをダウンロードします。Selenium AESは、公式サイト「Selenium Auto Exec Server(AES)」からダウンロードできます。執筆時点の最新バージョンは0.5です。

 ダウンロードファイル(selenium-autoexec-server-0.5.zip)は、ZIP形式で圧縮されているので、ダウンロードして適当なディレクトリに解凍します。

Selenium AESの設定

 解凍したディレクトリにある「setting.properties」を編集し、各種設定を行います。以降、必要最低限の設定を記載しますが、他にも様々な設定がありますので、設定できる内容については、一度目を通しておくことをお奨めします。

テストを実行するブラウザを設定

 「browser」にテストを実行するブラウザを設定します。

実行ブラウザの設定
browser=*firefoxproxy,*iexploreproxy

テスト対象のドメインを設定

 「startURL」にテスト対象のドメインを指定します。

テスト対象ドメインの設定
startURL=http://example.com/

定期的に実行する時間を設定

 「autoExecTime」に実行する時刻を指定します(hh:mmで時分を指定)。

実行時刻の設定
autoExecTime=2:00

テストケースを取得するリポジトリを設定

 「suiteRepo」に、テストケースの取得先となるSubversionのリポジトリURLを指定します。

SubversionリポジトリURLの設定
suiteRepo=http://example.com/svnrepo/selenium-test/

 Subversionで認証が必要な場合には、「suiteRepoUsername」、「suiteRepoPassword」に、ユーザ名とパスワードを指定します。

Subversion認証ユーザ名/パスワードの設定
# 認証ユーザ名
suiteRepoUsername=username
# 認証パスワード
suiteRepoPassword=password

テストケースの管理方法

 Seleniumでは、複数のテストケースをまとめたテストスイート単位にテストを実行します。そのため、テストケースを増やす場合、テストスイートも変更する必要があり、筆者はとても面倒だと感じています(テストスイートへの追加漏れなどのミスが発生しやすい)。

 このような手間が省けるよう、Selenium AESでは、テストスイートの自動作成機能を提供しています。指定ディレクトリ配下に、決められたルールでテストケースを配置しておくだけで、実行時にテストスイートを作成し、実行してくれます。

 下記のようなディレクトリ構成の場合、テストケースのディレクトリとして「test」を指定すると、配下のディレクトリ毎にテストスイートを作成し、実行してくれます(Regist.html、Update.html、Delete.htmlといった3つのテストスイートが作成される)。

テストケースのディレクトリ構成
test
  +- Regist/          … 機能毎にディレクトリを作成
  |   +- Case1.html   … ディレクトリ配下にテストケースを配置
  |   +- Case2.html
  +- Update/
  |   +- Case1.html
  |   +- Case2.html
  |   +- Case3.html
  +- Delete/
      +- Case1.html
      +- Case2.html
      +- Case3.html

 詳しくは、公式サイトの設定ファイルに関する記述の「suiteDir」の部分をご参照ください。

メール送信の設定

 「mail.host」「mail.port」にメールサーバ名とポート番号を指定します。

メールサーバ名/ポート番号の設定
# サーバ名
mail.host=smtp.example.com
# ポート番号(25の場合は省略可)
mail.port=925

 「mail.to」「mail.from」に送信先/送信元アドレスを指定します。

送信先/送信元アドレスの設定
# 送信先アドレス
mail.to=dev-ml@example.com
# 送信元アドレス
mail.from=report@example.com

 認証ありの場合、「mail.username」と「mail.password」も指定します。

認証ユーザ名/パスワードの設定
# 認証ユーザ名
mail.username=username
# 認証パスワード
mail.password=password

 SSLを利用する(SMTP over SSL)場合、「mail.ssl」にtrueを指定します。

SSL利用の設定
mail.ssl=true

プロキシの設定(必要な場合)

 テスト対象のアプリケーションに対して、プロキシを経由してアクセスする必要がある場合、「proxyHost」「proxyPort」を設定します。

プロキシの設定
# プロキシのホスト名
proxyHost=proxy.example.com
# プロキシのポート番号
proxyPort=3122

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • onozaty(オノザティ)

    (株)ユニスティ所属。主にWEBアプリケーション開発に携わるエンジニア。 個人としては、suggest.js、glayer.jsなどのJavaScriptライブラリや、del.icio.us IncSearch、ShortcutKey2URL などといったFirefoxアドオン、Selenium...

バックナンバー

連載:Selenium AESチュートリアル
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5