
ユカイ、ツーカイ、カイハツ環境!(7)
ブラウザを選ばずWebテストを自動化するSelenium
岡本 隆史
2009/8/19
Selenium IDEでテストケースを作成するには
最初に、Selenium IDEを利用してテストケースを作成してみましょう。
■ Selenium IDEのインストール
Selenium IDEはFirefox上で動作するので、あらかじめFirefoxをインストールしておきます。Selenium IDEはSeleniumのダウンロードサイトからダウンロードし、通常のFirefoxのプラグインのインストールと同じ手順でインストールします。詳細は、下記記事を参照してください。
ここでは、Firefoxを起動し、Firefoxのメニューで[ツール]→[アドオン]を選択し、[アドオンマネージャ]を表示します。[アドオンマネージャ]上にダウンロードしたプラグインをドラッグ&ドロップすると、インストールするかどうか聞かれるので、selenium-ideを選択してインストールボタンを押します(図1)。これで、インストールは完了です。
![]() |
| 図1 Selenium IDEのインストール |
■ Selenium IDEの起動
まず、テストケースを作成したいWebアプリケーションをFirefoxで開きます。テストを開始したいページを表示したら、Selenium IDEを起動します。Firefoxの[ツール]メニューの[Selenium IDE]を選択する(図2)と、Selenium IDEが起動します(図3)。
![]() |
| 図2 Selenium IDEの起動 |
![]() |
| 図3 起動したSelenium IDE |
■ Webブラウザ操作の記録
Selenium IDEが起動したら、Firefox上でWebアプリケーションのテストを行います。テスト手順に従ってFirefoxで表示したWebページのリンクやボタンをクリックしていけば、Selenium IDE上でユーザーの操作が記録されていきます。
記録形式は、[コマンド][対象][値]という形式で記録されます。[コマンド]には、Webブラウザを開く「open」やキー入力を示す「type」、ボタンをクリックして次の画面の遷移を待つ「clickAndWait」などがあります。
例えば、図3の2行目の[コマンド]「type」の部分では、「proj-search」という名前のテキストボックスに「テスト」という値を入力することを示しています。
■ 検証値の設定
Webブラウザに表示された値を検証したい場合は、アサーションのコマンドを利用します。例えば、[コマンド]に「assertTextPresent」、[対象]に「//」、[値]に「WikiStart」と記述すると、現在表示されているページに「WikiStart」という文字が含まれるかどうか検証します。
アサーションコマンドの詳細については、コラム「アサーションコマンドについて」をご覧ください。
■ 画面のキャプチャも自動で取れる
アサーションでは、Webブラウザ内のテキストやタグの内容を確認できますが、表示された画面を確認できません。画面は目視で確認する必要があります。しかし、Seleniumによって自動的に切り換わっていく画面を目視で確認するのは困難です。
ここで、「captureEntirePageScreenshot」コマンドを利用すると、その時点の画面キャプチャを自動的に取得できます。利用する場合は、[対象]には、キャプチャを出力するパスとファイル名(例:C:\Selenium\capture\capture1.png)を指定します。[値]は設定しないでOKです。
■ テストケースの保存
Webアプリケーションに対する操作を一通り行い、テストケースを作成したらSelenium IDEの右上の赤色ボタンを押して記録を停止し、Selenium IDEの[ファイル]メニューからテストケースを保存します。テストケースはリスト1のようなHTML形式で保存されます。
リスト1 Seleniumのテストケースのコード(抜粋)<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">test1</td></tr>
</thead><tbody>
<tr>
<td>open</td>
<td>/trac/SampleProject/</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>proj-search</td>
<td>テスト</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>//input[@value='検索']</td>
<td></td>
</tr>
<tr>
<td>assertTextPresent</td>
<td>//</td>
<td>WikiStart</td>
</tr>
<tr>
<td>captureEntirePageScreenshot</td>
<td>C:\Selenium\capture\capture1.png</td>
<td></td>
</tr>
</tbody></table>
SeleniumのテストコードはHTMLで記述されているので、Webブラウザで内容を確認できます(図4)。
![]() |
| 図4 Seleniumのテストケース |
■ テストスィートの作成
テストスィートを作っておけば、複数のテストケースをまとめて実行できます。テストスィートもHTMLで作成します。リスト2のようにテーブルの中にテストケースへのリンクを並べておくだけで、テストスィートの完成です。
リスト2 テストスィートの作成例<table id="suiteTable" border="1" class="selenium">
<tbody>
<tr><td><b>Test Suite</b></td></tr>
<tr><td><a href="test1.html">test1</a></td></tr>
<tr><td><a href="test2.html">test2</a></td></tr>
……
</tbody>
</table>次ページでは引き続き、Selenium RCでテストを実行します。
コラム 「アサーションコマンドについて」 |
||||||||||||||
アサーションコマンドは、アサーションのタイプと、アサーションの方法によりコマンドが提供されています。例えば、assertTextPresentの例では、assertがアサーションのタイプであり、TextPresentがアサーションの方法となります。アサーションのタイプには、次の3つがあります。
また、アサーションコマンドの対象は、ロケーターによって指定されます。ロケーターには、idまたはname属性やDOM、XPathなどが利用できます。例を表に示します。
アサーションコマンドやロケーターの詳細については、下記のWebサイトをご覧ください。 |
| Index | ||||||||
|
||||||||
ユカイ、ツーカイ、カイハツ環境! バックナンバー 連載インデックスへ»
- 第1回 Trac Lightningで始めるチケット式開発「電撃」入門
- 第2回 SubversionとTracでファイル管理の“迷宮”から脱出
- 第3回 分散バージョン管理Git/Mercurial/Bazaar徹底比較
- 第4回 Aptanaなら開発環境とクラウドの連携が超お手軽!
- 第5回 App Engine/AptanaなどJavaクラウド4つを徹底比較
- 第6回 Eclipse 3.5 Galileoの「実に面白い」新機能とは
- 第7回 ブラウザを選ばずWebテストを自動化するSelenium
- 第8回 JUnit/FindBugs/PMDなどを総観できるQALab/Limy
- 第9回 Googlerも使っているIntelliJ IDEAのOSS版を試す
- 第10回 Webのバグを燃やしまくるFirebugと、そのアドオン7選
- 第11回 DB設計の神ツール「ERMaster」なら、ここまでできる
- 第12回 AWS ToolkitでTomcatクラスタをEC2上に楽々構築
- 第13回 究極の問題解析ツール、逆コンパイラJD-Eclipseとは
- 第14回 AzureのストレージをJavaで扱えるWindowsAzure4j
- 第15回 Java EE 6/Tomcat 7/Gitに対応したEclipse 3.6
- 第16回 単体テストを“神速”化するQuick JUnitとMockito
- 第17回 コード探知機「Sonar」でプロジェクトの深海を探れ!
- 第18回 Team Foundation ServerでJava開発は大丈夫か?
- 第19回 Review Boardならコードレビューを効率良くできる!
- 第20回 Bazaarでござ〜る。猿でもできる分散バージョン管理
- 第21回 「Hudson」改め「Jenkins」で始めるCI入門
- 第22回 Ant使いでもMavenのライブラリ管理ができるIvyとは
- 第23回 AWSの自由自在なPaaS「Elastic Beanstalk」とは
- 第24回 Eclipse 3.7 Indigo公開、e4、Orion、そしてクラウドへ
- 第25回 Java開発者が知らないと損するPaaSクラウド8選
- 第26回 Git管理の神ツール「Gitolite」なら、ここまでできる!
| Java Solution全記事一覧 |
TechTargetジャパン
- EclipseでScalaプログラミングを始めるための基礎 (2012/2/10)
概要や5つの特徴を紹介し、開発環境を構築して対話型実行環境「REPL」やEclipse上でHello Worldを実行します - 並列分散処理の常識をHadoopファミリから学ぶ (2012/2/8)
並列分散処理の課題やHadoopの長所/短所、そして短所を補うHadoop関連プロジェクトの構成や概要などを簡単に紹介 - WebLogicサーバ最新版「12c」の気になる4つの特徴 (2012/1/31)
久々にメジャーアップグレードしたJavaアプリケーションサーバについて、製品担当者に軽量インストーラなどの特徴を聞いた - GitHubをもっとソーシャルに使いこなすための7つ道具 (2012/1/23)
ソースコードホスティングのGitHub周辺で便利な新サービスが続々登場しているので、まとめて紹介しよう。特に連動クラウド「fluxflex」が注目だ
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -





