テストツールの最近のブログ記事

前回はDJUnitを使った単体試験を紹介しましたが、今回はWEBアプリケーションでよく使われるStrutsのアクションクラスのテストを楽に行うライブラリを紹介いたします。
StrutsTestCaseを利用することによってアクション単位にテストすることが可能でブラウザを開かなくても試験ができます。今まではアクションの試験は実際にブラウザを動かす必要があったため面倒なものでした。さらに画面から入力される情報をプログラム上で作成するので未入力でボタンを押したなどのバリデートのテストも同時行えます。

 

StrutsTestCase for JUnit
http://sourceforge.net/project/showfiles.php?group_id=39190

cactus(今回はStrutsTestCaseの中にあるjarを使いますので落とさなくても良いです)
http://jakarta.apache.org/cactus/downloads.html

【環境・バージョン情報】
OS:WindowsXP SP3
Eclipse:3.3.2
JDK:JDK1.5.0
StrutsTestCase:strutstest214-1.2_2.4.zip
Tomcat:6.0.16
struts:1.2
 

すでにhttp://localhost:8080/sampleでログイン処理後(セッションにユーザID格納)、一覧ページを開くような処理が実装されているとします。

 

StrutsTestCase for JUnitのページからダウンロードしたstrutstest214-1.2_2.4.zipのexamples\test.warに入っているjarの中身を利用します。

【新たに追加したLIB】
aspectjrt-1.2.1.jar
cactus-13-1.7.jar
commons-collections.jar
commons-httpclient-2.0.jar
junit-4.0.jar
strutstest-2.1.4.jar

 

WEB.xmlに記述を追加します。

【WEB.xmlの追加】
    <!-- Cactus Servlet Redirector configuration -->
    <servlet>
        <servlet-name>ServletRedirector</servlet-name>
        <servlet-class>org.apache.cactus.server.ServletTestRedirector</servlet-class>
    </servlet>

    <!-- Cactus Servlet Redirector URL mapping -->
    <servlet-mapping>
        <servlet-name>ServletRedirector</servlet-name>
        <url-pattern>/ServletRedirector</url-pattern>
    </servlet-mapping>

 

以下のように記述したcactus.propertiesをsrc直下に置きコンパイルすればclassesにコピーされます。

【cactus.propertiesの中身】
cactus.contextURL = http://localhost:8080/sample
cactus.servletRedirectorName = ServletRedirector
cactus.enableLogging=true
 

そこで以下のようなテストプログラムを作成して、Tomcatプラグインを起動しつつ、JUnitで実行してみると

StrutsTestCaseを使って楽にアクションのテストを行う1.JPG

StrutsTestCaseを使って楽にアクションのテストを行う2.JPG

と無事にJUnitが完了できました。

setUpメソッドにログイン処理を書くことができることによって、ログインした状態で各ページのテストを実行することが可能です。これはわざわざブラウザでログインしないでテストできるので、シナリオを作ってテストするようなツールで実行するより早くテストが実行できるかもしれません。

 

最終的にはJSPも含めたブラウザからのテストをしないといけないのですが、アクションのテスト結果も出せなどと言われた場合や、余裕があるプロジェクトでは利用する価値はあるのではないでしょうか。

JMeterでブラウザを動かしてシナリオの作成はできないかと思っていたら、普通に機能として実装されていました。

環境

OS:WindowsXP

JDK:jdk1.5.0_01

JMeter2.3.1

1.JMeterを落として、ApacheJMeter.jarを実行する

2.スレッドグループの追加を行う。
[テスト計画]で右クリック→[追加]→[スレッドグループ]。
後でも設定できるがスレッド数、Ramp-Up期間(秒)、ループ回数などを設定する

3.ブラウザで使用するプロキシを設定する。
[ワークベンチ]→[追加]→[Non-Testエレメント]→[HTTPプロキシサーバ]
主にポート番号、除外するパターンに画像ファイル拡張子設定(*.jpg等)を決める

4.ブラウザのプロキシを3.で設定したポート番号に設定する

5.HTTPプロキシサーバで開始ボタン押下

6.ブラウザでシナリオとして画面遷移させていく

7.HTTPプロキシサーバで停止ボタン押下

8.シナリオの吟味を行い動的にしたいパラメータを変更していく


やってみると意外に簡単。まだまだ機能は多そうなのでもっと使い込んで行く予定。