第5回 Seleniumでのテストの記述方法 - テスト講座

PHP 中級 講座

TOM先生のテスト講座

Lecutures on PHP

第5回 Seleniumでのテストの記述方法 (その3)

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

ここまで記述したHTMLテーブルを実行する方法

HTMLテーブルの記述方法を説明してきましたが、決められたルールで記述したHTMLを作った後どのようにしたらそれを実行できるかをここでは説明します。次のような手順を行うことによってSeleniumで実行することができます。

(1) テスト内容を記載したHTMLファイルを保存する

決められたルールでHTMLテーブルを記載したHTMLをApacheで公開しているディレクトリ以下に保存します。(/selenium-tests/といったURLでアクセスできるように保存する)

Seleniumではこのような1つ1つのファイルで記載された各テストのことをTestCaseと呼んでいます。

(2) TestSuiteファイルを作成して保存する

(1)で保存したディレクトリに次のようなHTMLファイルを作成して保存します。このファイルはTestSuiteファイルと呼ばれます。


図9 TestSuiteファイルの例
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
 
<table border="1">
<tr>
<td>TestSuite</td>
</tr>
<tr>
<td><a href="test1.html">両方入力しない</a></td>
</tr>
<tr>
<td><a href="test2.html">1つめだけ入力</a></td>
</tr>
</table>
 
</body>
</html>

上記の例のように(1)で作成したファイルへのリンクを記述したHTMLテーブルを作成するとSeleniumに対してどの順番でテストをしてほしいかを指示することができます。

(3) SeleniumのTest RunnerでTestSuiteファイルを選択する

最後にSeleniumのTest Runnerで(2)で作成したSeleniumのTestSuiteを選択すればSeleniumはTestSuiteファイルを読み込んだ後、順番に個別のファイルを読み込んでテストを順次実行してくれます。

簡単にテストケースを作る方法

ここまで読み進めてもらってファイルを作成するのが大変だなぁと感じた方が多いのではないでしょうか?

Seleniumでのテストの記述方法はルールは単純ですがそれを一つ一つ記述していくのはやはり大変な作業になります。

そこで"Selenium IDE"というツールの登場になります。これを使用すれば、実際に操作した内容を記録することができ、記録した内容をそのままSeleniumのテストケースとして使用することができます。

Selenium IDEはFirefoxのアドオンとして配布されています。そのため使用するためにはFirefoxを利用する必要があります。ただし、テストの記述をするために使用するツールですので、Selenium IDEで作成したテストを使って他のブラウザのテストを行うことも可能です。

使用方法は次のような流れになります。

(1) Selenium IDEを入手する

Selenium IDEは以下のサイトで配布されています。

Selenium IDE::Firefox Add-ons
https://addons.mozilla.org/ja/firefox/addon/2079

(2) Selenium IDEを起動する

FirefoxのツールメニューにSelenium IDEがありますので、Selenium IDEを起動します。以下のような画面が表示されます。

Selenium IDE

(3) Selenium IDEの記録ボタンをクリックする

Selenium IDEの右上にある記録ボタンを押すと記録が開始されます。

記録ボタン

(4) テストしたいWebアプリケーションを操作する

テストしたい順番にWebアプリケーションを実際に操作します。操作していくとその操作手順がSelenium IDEによって記録されていきます。

(5) もう一度Selenium IDEの記録ボタンをクリックする

もう一度Selenium IDEの右上の記録ボタンを押すと記録が終了します。

さてSelenium IDEを見てみましょう。先ほどまで操作した内容が記録されているはずです。テーブルタブでテスト内容が表示されていて、ソースタブでHTMLでの内容が表示されます。

テーブルタブ

ソースタブ

記録したテスト内容を保存して、後は必要に応じて編集して利用します。Selenium IDEの記録機能を使って生成できるものは基本的にActionコマンドになるので、Accessorsコマンドに関しては必要に応じて追加したり、一旦保存してエディタ等で編集しましょう。

今回のまとめ

  • Seleniumでテストを記述する方法にはルールがある
  • HTMLテーブルにコマンド、ターゲット、バリューを記述することによってテストを記述する
  • ターゲットには「何に対して?」というものを指定する場合が多く、その多くはHTMLの要素の指定を行う
  • HTML要素の指定方法の一番簡単な方法はid指定で、それができない場合はlinkやxpathやdomを使うことになる
  • コマンドには"Actionコマンド"と"Accessorsコマンド(Assertionコマンド含む)"がある
  • Actionコマンドはブラウザに対する操作をエミュレートすることができる
  • Accessorsコマンド(Assertionコマンド含む)は動作させた結果を保持したり、評価したりすることができる
  • 記述したテストを実行するためにはTestSuiteファイルを作る必要がある
  • Seleniumのテストを記述するのは大変なのでその作業を支援するためにSelenium IDEというツールがある
  • 次回は?

    TOM先生今回までで結合テストの解説は終了です。次回からはUnitTestについて解説していきます。




  • TOM先生

本名:小林智樹

ソリッド・ブルー株式会社 代表取締役CTO http://solidblue.jp/
Mapleプロジェクト コミッター http://kunit.jp/maple/

SI企業にて、運用保守担当として大手企業や各省庁の大規模システムを支える。
その後、起業・独立し、現在はソリッド・ブルー株式会社のCTOとして、PHPを中心とした技術戦略の立案などを行っている。また、PHPフレームワークMapleプロジェクトの一員として、RESTfulやTDDについて普及活動を展開している。

ご意見・感想フォーム

今回の「TOM先生のテスト講座」への評価・ご意見があればご記入下さい。

評価:
ご意見・感想:



Pick Up Q&A

Q
動的なURLを静的に見せる方法
 このエントリーをはてなブックマークに追加 
A
普通に考えて、mod_rewrite でしょうね。 http://www.nishishi.com/blog/2006/01/mod_rewrite_url.html...

>>続きを読む

GETのままでは検索エンジンのロボットが拾ってくれなかったためにSEO対策として有効だと言われていますね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)