SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

連載記事

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
Selenium AESチュートリアル

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

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

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

  • X ポスト
  • このエントリーをはてなブックマークに追加

はじめに

 「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」に送信先/送信元アドレスを指定します。

送信先/送信元アドレスの設定
# 送信先アドレス
[email protected]
# 送信元アドレス
[email protected]

 認証ありの場合、「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

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
Selenium AESの起動

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Selenium AESチュートリアル連載記事一覧
この記事の著者

onozaty(オノザティ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3905 2009/06/11 14:00
" ); }

おすすめ

アクセスランキング

  1. 1
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に NEW
  2. 2
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──アクションによる非同期処理の進化
  3. 3
    「代替されない強み」を身に着ける覚悟はあるか──Java Champion 寺田佳央氏が経験してきた挫折とは NEW
  4. 4
    IPA、DXの先進事例を素早く効率的に検索できるWebサイト「デジタル事例データベース」を公開
  5. 5
    ランサーズ、「2024年必要とされたスキルランキング」を公開。「Lancers」上のデータを集計
  1. 6
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 7
    Apple、2024 App Store Awardsの受賞者発表 NEW
  3. 8
    楽天、日本語に最適化したAIモデル「Rakuten AI 2.0」と「Rakuten AI 2.0 mini」を発表 NEW
  4. 9
    GitHub Copilotの無料プラン「GitHub Copilot Free」リリース、GitHubへの登録開発者数は1億5000万人突破 NEW
  5. 10
    「CUDA」 ~マンガでプログラミング用語解説

アクセスランキング

  1. 1
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に NEW
  2. 2
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──アクションによる非同期処理の進化
  3. 3
    「代替されない強み」を身に着ける覚悟はあるか──Java Champion 寺田佳央氏が経験してきた挫折とは NEW
  4. 4
    IPA、DXの先進事例を素早く効率的に検索できるWebサイト「デジタル事例データベース」を公開
  5. 5
    ランサーズ、「2024年必要とされたスキルランキング」を公開。「Lancers」上のデータを集計
  6. 6
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  7. 7
    Apple、2024 App Store Awardsの受賞者発表 NEW
  8. 8
    楽天、日本語に最適化したAIモデル「Rakuten AI 2.0」と「Rakuten AI 2.0 mini」を発表 NEW
  9. 9
    GitHub Copilotの無料プラン「GitHub Copilot Free」リリース、GitHubへの登録開発者数は1億5000万人突破 NEW
  10. 10
    「CUDA」 ~マンガでプログラミング用語解説
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    今後生成AIとどう向き合うべきなのか? 現場のエンジニアと研究者が最新研究事例から語り合う
  6. 6
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  7. 7
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  8. 8
    Vue.js3.4~3.5の新機能をまとめて紹介! 新しいAPIやSSRの改善
  9. 9
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  10. 10
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

メールバックナンバー

アクセスランキング

  1. 1
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に NEW
  2. 2
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──アクションによる非同期処理の進化
  3. 3
    「代替されない強み」を身に着ける覚悟はあるか──Java Champion 寺田佳央氏が経験してきた挫折とは NEW
  4. 4
    IPA、DXの先進事例を素早く効率的に検索できるWebサイト「デジタル事例データベース」を公開
  5. 5
    ランサーズ、「2024年必要とされたスキルランキング」を公開。「Lancers」上のデータを集計
  1. 6
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 7
    Apple、2024 App Store Awardsの受賞者発表 NEW
  3. 8
    楽天、日本語に最適化したAIモデル「Rakuten AI 2.0」と「Rakuten AI 2.0 mini」を発表 NEW
  4. 9
    GitHub Copilotの無料プラン「GitHub Copilot Free」リリース、GitHubへの登録開発者数は1億5000万人突破 NEW
  5. 10
    「CUDA」 ~マンガでプログラミング用語解説

アクセスランキング

  1. 1
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に NEW
  2. 2
    フロントエンドの定番ライブラリ「React 19」の新機能を紹介──アクションによる非同期処理の進化
  3. 3
    「代替されない強み」を身に着ける覚悟はあるか──Java Champion 寺田佳央氏が経験してきた挫折とは NEW
  4. 4
    IPA、DXの先進事例を素早く効率的に検索できるWebサイト「デジタル事例データベース」を公開
  5. 5
    ランサーズ、「2024年必要とされたスキルランキング」を公開。「Lancers」上のデータを集計
  6. 6
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  7. 7
    Apple、2024 App Store Awardsの受賞者発表 NEW
  8. 8
    楽天、日本語に最適化したAIモデル「Rakuten AI 2.0」と「Rakuten AI 2.0 mini」を発表 NEW
  9. 9
    GitHub Copilotの無料プラン「GitHub Copilot Free」リリース、GitHubへの登録開発者数は1億5000万人突破 NEW
  10. 10
    「CUDA」 ~マンガでプログラミング用語解説
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    今後生成AIとどう向き合うべきなのか? 現場のエンジニアと研究者が最新研究事例から語り合う
  6. 6
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  7. 7
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  8. 8
    Vue.js3.4~3.5の新機能をまとめて紹介! 新しいAPIやSSRの改善
  9. 9
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  10. 10
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表