CodeZine(コードジン)

特集ページ一覧

Selenium 0.7利用手順書(後編)

テストケースの作成とテストの実行

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

ダウンロード SeleniumSampleCode.zip (2.0 KB)

目次

テストケースの配置&テストの実行

 いよいよ、ここまで作成したテストケースを使ってテストを実行していきます。

テストの構成

 初めに、テストの構成について確認しておきましょう。Seleniumでは、1つのテストケースが1つのhtmlファイルで実現されています。

 テストケースの集合体がTestSuiteで、SeleniumはTestSuite単位でテストを実施します。そして、複数のTestSuiteをまとめた目次に相当するのものがindexになります。

図11 Seleniumのテスト構成
図11 Seleniumのテスト構成

 テストケースを追加する場合は、index/TestSuite/TestCase、いずれかの単位で追加することになります。

既存のテストケースに追加する

 まず、TestCaseを既存のデフォルトテストに追加してみましょう。デフォルトテストのフォルダ/ファイル構成は次のようになっています。

図12 デフォルトテストのフォルダ構成
SeleniumTest
  +- WEB-INF/
  +- selenium-core/
      +- index.html  …………………… Index
      +- tests/
           +- TestSuite.html ………… TestSuite
           +- html/
           +- TestOpen.html
           +- TestClick.html ………… 各テストケース
           +- TestType.html
                  :

 ここでは「MyLoginTest01.html」というテストケースを追加してみましょう。手順は次のとおりです。

  1. テストケースのhtmlファイルを所定のフォルダに配置
  2. 「MyLoginTest01.html」ファイルを他のテストケースと同じ場所(selenium-core/tests/配下)に置きます。
  3. TestSuiteに追加したテストケースのリンクを追記
  4. TestSuiteは1カラムのtableになっています。tableに行を追加し、「TestSuite.html」からの相対パス指定でテストケースへのリンクを記述します。
    TestSuite.html
    <table cellpadding="1" cellspacing="1" border="1">
        <tbody>
            <tr><td><b>Test Suite</b></td></tr>
            <tr><td><a href="./TestOpen.html">TestOpen</a></td></tr>
            <tr><td><a href="./TestClick.html">TestClick</a></td></tr><tr><td><a href="./TestVerifyEditableFailures.html">
                    TestVerifyEditableFailures</a></td></tr>
            <tr><td><a href="./NyLoginTest01.html">
                    MyLoginTest01</a></td></tr>
        </tbody>
    </table>
    
    9行目で追加するテストケースhtmlの相対パスを指定しています。
  5. 動作確認
  6. 前回説明した「動作確認」にて実施した手順で、デフォルトのTestSuiteにMyLoginTest01が追加されていることを確認して、テストを実施してみてください。

新規にテスト群を作成する

 結合試験などの場合、次のような構成でテスト項目が挙げられていると思います。

表9 結合試験項目表の例
中項目No中項目小項目No小項目
1ログイン1正常なIDとパスワードでログインできること
2正常なIDと誤ったパスワードの場合ログインできないこと
2書籍検索1キーワードを入力して検索できること
2カテゴリを指定して検索できること

 Seleniumでも、テスト項目の構成に合わせてテスト群を作成していきましょう。Seleniumでは1つのテストケース(html)が小項目に、TestSuiteが中項目に該当します。以下の手順で進めていきます。

(1)結合試験用フォルダを作成

 SeleniumTestプロジェクト直下に「testhtml-it」フォルダを作成します。

 「selenium-core」フォルダ配下はデフォルトのテストケース以外にもSeleniumの動作を司るJavaScriptやhtml類が格納されていますから、プロジェクトで新たに追加するものは明確に分けておいた方が良いでしょう。

 今回は、「testhtml-it」というフォルダを作成しました。結合試験後、機能試験など別のテストが追加される可能性を考慮しています。

(2)各中項目のフォルダを作成

 「testhtml-it」フォルダ配下で以下のフォルダを作成します。

01_Login_Test
02_Search_Test

 フォルダ名には特に制限はありません。今回は中項目Noと中項目名でフォルダを作成しました。

(3)各中項目のフォルダにテストケースhtmlを配置

 作成した各テストケースのhtmlを配置します。

(01_Login_Test フォルダ配下)
  01_Login_Test_001.html
  01_Login_Test_002.html
      :

(02_Search_Test フォルダ配下)
  02_Search_Test_001.html
  02_Search_Test_002.html
      :

 テストケースのファイル名には特に制限はありません。今回は、中項目名と連番でファイル名を付けました。

(4)TestSuiteを作成

 各中項目のフォルダにTestSuite用htmlを作成します。作成するファイルは次のとおりです。

(01_Login_Test フォルダ配下)
  01_Login_TestSuite.html
(02_Search_Test フォルダ配下)
  02_Search_TestSuite.html

 TestSuiteはカラム数1のtableとして作成します。TestSuiteに含む各テストケースへのリンクを相対パスで指定します。今回はTestSuiteとテストケースは同じフォルダに配置しているので「./テストケースファイル名」という記述になります。

01_Login_TestSuite.html
<meta http-equiv= "Content-Type" content="text/html; charset=Shift_JIS">
<html>
<head>
    <title>01_Login_TestSuite</title>
</head>

<body>
<table border="1">
    <tr><td>01_Login_TestSuite</td></tr>
    <tr><td><a href="./01_Login_Test_001.html">
        01_Login_Test_001</a></td></tr>
    <tr><td><a href="./01_Login_Test_002.html">
        01_Login_Test_002</a></td></tr>
</table>
</body>
<html>

 9行目、TestSuiteはカラム数=1のtableであり、1行目にはTestSuite名「01_Login_TestSuite」を記述しています。

 10行目、11行目、各テストケースhtmlの相対パスを記述しています。

(5)Indexを作成

 結合試験用フォルダに、各中項目TestSuiteを示すIndexを作成します。今回の例では、「testhtml-it」フォルダ直下に「index.html」を作成します。

 Indexは各TestSuiteを起動するためのものです。seleniumの「TestRunner.html」へのリンクを指定し、testパラメータとして起動したいTestSuiteへの「TestRunner.html」からの相対パスを指定します。

index.html
<meta http-equiv= "Content-Type" content="text/html; charset=Shift_JIS">
<html>
<head>
    <title>結合テスト index</title>
</head>
<body>
    結合テスト index
    <br></br>
    <a href="/SeleniumTest/selenium-core/core/TestRunner.html
        ?test=../../testhtml-it/01_Login_Test/01_Login_TestSuite.html"
    target="_blank">01_Login_Test</a>
    <br></br>
    <a href="/SeleniumTest/selenium-core/core/TestRunner.html?
        ?test=../../testhtml-it/01_Login_Test/02_Search_TestSuite.html"
    target="_blank">01_Login_Test</a>
    <br></br>
</body>
</html>

 9行目、「/SeleniumTest/selenium-core/core/TestRunner.html」と記述し、SeleniumTestプロジェクトの「TestRunner.html」を相対パス指定します。

 続く、10行目、「?test=../../testhtml-it/01_Login_Test/01_Login_TestSuite.html」では、リクエストパラメータtest=の引数に、TestRunnerから各TestSuiteへの相対パスを指定しています。

 また、11行目では、target="_blank"とし、TestSuiteを別ウィンドウで開くためにblankを指定しています。

 以下が一通り作成した状態です。

図13 結合試験用フォルダおよびファイルを作成
図13 結合試験用フォルダおよびファイルを作成

(6)動作確認

 Tomcatを起動し、ブラウザで以下のURLを指定すると、作成した「testhtml-it」のindex画面が表示されます*2

*2
 Tomcat 5.0.xの場合はTomcatManagerでSeleniumTestの中に作成された「testhtml-it」フォルダをクリックして起動してもかまいません。
図14 作成したtesthtml-itのindex画面
図14 作成したtesthtml-itのindex画面

 そして、[01_Login_Test]のリンクをクリックすると、別ウィンドウでログインのTestSuiteが表示されました! TestSuite内の各テストケースを実施してみてください。

図15 作成したTestSuite(01_Login_TestSuite)画面
図15 作成したTestSuite(01_Login_TestSuite)画面

(7)テストケースの追加

 テストケースを追加する場合、手順(3)~(4)のファイル配置とTestSuiteへの追記を繰り返します(中項目を増やす場合は手順(2)~(4))。

テストの実施

 テストを実施するには、上述したように結合試験のIndex画面から各TestSuiteを実行します。

 また、直接TestRunnerを起動することもできます。以下のようにtestパラメータにTestSuiteを指定して、「TestRunner.html」を開きます。

 それでは、Seleniumでのテストをお楽しみ下さい!!

終わりに

 Webアプリケーション用のテストツールSeleniumについて解説してきました。Seleniumを使用することで、ブラウザ操作を自動化して、Webアプリケーションの試験・検証を効率的に行うことができます。前回に引き続き、今回はテストケースを実際に記述し、Seleniumでテストを実行する手順を解説しました。

 次回は、Seleniumを使用する際のTipsを紹介します。お楽しみに。

参考サイト



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

修正履歴

  • 2006/08/03 11:40 8/3 SelneiumIDEでassertTitleを自動的に記録する旨の記述を修正(オプション設定)

バックナンバー

連載:Selenium 0.7利用手順書

著者プロフィール

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5