第8回 Jameleonを使ったテスト理論的・計画的なWebアプリケーションのテストの実現(1/5 ページ)

今回から、Jameleon 3.3-M4を使ってJameleonの機能を説明していく。まずはサンプルスクリプトで行われている内容を解説した後、実際にテストスクリプトを作成してみよう。

» 2006年12月26日 09時30分 公開
[加藤大受,ITmedia]

 前回よりずいぶんと時間が経ってしまいましたが、第7回ではJameleonの概要について説明しました。全体の概要を覚えていない人は再度第7回を読んでからこちらの回を読んでみてください。今回は実際にJameleon 3.3-M4を使ってJameleonの機能を説明したいと思います。かなりのボリュームになりますが、最後まで読み進めていただければ、Jameleonについてはひととおり理解できると思います。

 なお、Jameleonを実行するにはJava環境が必要ですので、事前にJ2SEのSDKのインストールを済ませておいてください。ここではJ2SE 6.0のSDKがインストールされていることを前提に説明します。

 Jameleon 3.3-M4の導入は前回説明した方法と同様に、Jameleon Test Suiteをダウンロードします。解凍すると、jameleon-test-suiteというディレクトリの中に次のようなディレクトリが作成されます。

ディレクトリ名 格納されているもの
scripts XMLスクリプトを格納
src/java カスタムXMLタグを格納
data データセットを使ったテスト(データドリブンテスト)のためにCSVファイルを格納
res プロパティファイルを格納
lib Jameleonのライブラリファイル

 プロパティファイルは使用するプラグインやテスト実行に関する設定を記述するファイルです。通常はすでに存在する初期値のEnvironment.propertiesファイルをそのまま利用することで問題ありません。

 Jameleonでは、次のようなテストを作成することができます。

  • JUnitプラグインを使ったホワイトボックスレベルのテスト。すべてのJUnitの機能タグはほかのプラグインの機能と一緒に利用可能
  • Jiffieプラグインを使ったIEベースのテスト。このテストはWindows環境でのみ実行可能
  • HtmlUnitプラグインを使ったブラウザベースのテスト。一部のJavaScriptsとXPathについてもサポートしている
  • HTTPUnitプラグインを使ったブラウザベースのテスト。HtmlUnitプラグインではコンテンツベースでテストするのに対し、HTTPUnitではHTTPの通信ベース、つまりプロトコルベースのテストとなる。
  • 3270(Jagacy)プラグインを使った3270ベースのIBMメインフレームで稼働するアプリケーションのテスト

 プラグインとしては前記以外にもJWebUnitプラグインがありますが、これはセッションタグの機能を提供するために利用されているものです。

 JameleonはこのようにさまざまなプラグインでWebアプリケーションのホワイトボックステストからブラックボックスレベルの機能テストまでサポートします。ただし、わたしとしてはJUnitなどのホワイトボックステストはEclipseなどの開発環境内から実行したいので、Jameleonは機能テストまたは回帰テストなどのブラックボックステストのツールとして利用するのがいいと思います。そこでこの記事では機能テストに話を絞ってJameleonを解説していきます。

 なお、Jameleonのライセンスは、GNU Lesser General Public License(GNU LGPL)ライセンスで開発されていますが、Jameleon自体を開発しているアプリケーションに組み込んだりせずに、ただのテストツールとして利用するのであれば利用は問題ありません。

まずはサンプルを動かしてみよう

 解凍後、scriptsフォルダ以下には、「htmlunit-sourceforge.xml」「httpunit-sourceforge.xml」「jiffie-sourceforge.xml」の3つのテストスクリプトがサンプルとして用意されています。それぞれHtmlUnitプラグイン、HttpUnitプラグイン、Jiffleプラグインを使ったものとなっています。

 リスト1はJiffleプラグインを使ったjiffie-sourceforge.xmlです。このXMLファイルはApache Jakartaプロジェクトで利用されているJellyというJavaおよびXMLベースのスクリプトエンジンを利用したスクリプトファイルです。


<testcase xmlns="jelly:jameleon">
  <test-case-summary>Tests searching on the sourceforege site</test-case-summary>
  <test-case-author>Christian Hargraves</test-case-author>
  <test-case-level>ACCEPTANCE</test-case-level>
  <functional-point-tested>Jiffie Example</functional-point-tested>
  <ie-session baseUrl="http://sourceforge.net" beginSession="true">
    <ie-validate
        functionId="Verify that we are on the sourceforge home page"
        title="SourceForge.net: Welcome to SourceForge.net"
        textPresent="Open Source Technology Group"/>
    <ie-set-text-field
        functionId="Enter jameleon into the search box."
        name="words"
        value="jameleon"
        form="searchform"/>
    <ie-click-button
        functionId="Click on the 'Google Search' button."
        form="searchform"
        value="Search"
        eventToFire="onclick"
        functionDelay="300"/>
    <ie-validate
        functionId="Check that we actually did a search for 'Jameleon' and that we found 'Jameleon'"
        title="SourceForge.net: Software Search"
        linkPresent="Jameleon"/>
    <ie-click-link
        functionId="Click on the 'Jameleon' link"
        link="Jameleon"/>
    <ie-validate
        functionId="Validate that we arrived at the Jameleon SourceForge Page."
        title="SourceForge.net: Jameleon"
        linkPresent="engrean"/>
    <ie-fire-event
        functionId="Do a mouseover on the 'Project' tab"
        htmlElement="li"
        eventToFire="onmouseover">
        <ie-attribute>
            <ie-attribute-name>class</ie-attribute-name>
            <ie-attribute-value>begin selected</ie-attribute-value>
        </ie-attribute>
    </ie-fire-event>
    <ie-click-link
        functionId="Navigate to the Jameleon site by clicking on the 'Home Page' link"
        link="Web Site"/>
    <ie-validate
        functionId="Validate that we arrived at the Jameleon SourceForge Page."
        title="Jameleon - An Automated Testing Tool - Overview"/>
  </ie-session>
</testcase>

リスト1 jiffie-sourceforge.xml

 次のページからは、このjiffie-sourceforge.xmlの内容を順に追うことで、Jameleonのテストスクリプトがどのようになっているのかを解説していきます。リスト1を印刷するなどして手元に置きながら読み進めるとよいでしょう。

       1|2|3|4|5 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ