Xcuteの負荷テストツール
はじめに
開発物を運用に移行する前に十分な負荷テストを行うことは、安定運用に不可欠な事です。
しかしながら、実運用に近い手順で、ブラウザによる手動テストの繰り返しは、手間がかかり、効率的ではありません。
本ツールは、定義した手順を元に、Xcuteの負荷テストを行うことを目的としています。
xcload.exeの起動
「xcload.exe」は、コマンドライン型アプリケーションです。 その動作は、”動作定義ファイル”に定義します。 ここでは、サンプルを動作させるために必要な設定項目について解説します。
今回の例では、”init.txt”とします。
xcload.exeに、どの設定ファイルを利用するか指示する必要があります。 コマンドラインからコマンドを投入することもできますが、起動を簡単にするためにショートカットを利用して起動するように設定します。
xcload.exeにて右クリックし、ショートカットの作成を選ぶと、下記のようにショートカットが作成されます。
xcload.exeへのショートカットにて、右クリックし、プロパティを選び下記項目を設定します。
これで準備完了です。付属のinit.txtは、アプリケーションテンプレートをテストできるようになっています。
アプリケーションテンプレートを下記よりダウンロードし、立ち上げてください。
http://www.microlab.jp/xcute/xcutedoc/index.htm#templ
init.txtに定義されたテストは、以下のテストを順番に行います。
1)ログイン画面を表示
2)ログイン情報を送信(eigyou1でログイン)
3)ログイン完了後のメニュー画面を表示
4)一覧画面を表示
5)山田花子のデータ表示(3回繰り返す)
以上、1〜5までのテストを10000回繰り返します。
上記テストが終わったらさらに、1のテストのみ10000回繰り返します。
テストを中断する場合は、CTRL+Cを押します。
まずは、本テストを実行して、どのような動作をするか試してみてください。
その他のパターンでテストを行いたい場合は、下記を参照し、init.txtをカスタマイズしてください。
動作定義ファイルの記述方法
動作定義ファイルは、[GLOBAL] , [TEST] , [PROCESS]  の3セクションから構成されます。
1) [GLOBAL]セクション
動作に関する、規定値を定義します。
@で始まる指定は、各セクションにおいて変更可能ですが、@@で始まる指定は、各セクションで変更できません。
@@ProwebErr=on/off
ProWebErr.htmをXCuteが返した場合、負荷テストを終了する場合は、on
強制続行は
off を指定します。
@@LogPath=保存先のパス
ログファイル保存先を指定します。
ProWebErrが帰った際の画面HTMLも、このパスに保存されます。
@@LogFile=ログファイル名
テスト進行状況のログファイルを指定します。画面に出力されているメッセージが、そのまま、ファイルに記録されます。
ログファイル未指定時には、ログファイルを作成しません。
ここまでの指定は、他のセクションにおいて変更できません。
@SaveHtml=保存先のパス
応答画面(HTML)を保存する場合、./html などとし、保存先のパスを指定します。
保存先未指定時には、応答画面を保存しません。
@Domain=localhost
テストの対象となるHTTPサーバを指定します。
@Port=80
テストの対象となるHTTPサーバのポートを指定します。
@Procgi=/procgi10
procgi.exeまでのURLを指定します。
@Method=get/post
HTTPメソッドを指定します。
@Timeout=秒
リクエストの対しての応答時間タイムアウトを指定します。
@Loop = 回数
テストの繰り返し回数を指定します。
ここまでの指定は、他のセクションにおいて変更することができます。
2) [TEST]セクション
各画面ごとのリクエストを定義します。
たとえば、Login画面を表示する、メニュー画面を表示するなど、このセクションに定義します。
一つのテストブロック(画面リクエスト)は、 $$begin から $$end の間に指定します。
前述の[GLOBAL]セクションにおいて示された、@で始まる指定は、すべて、本セクションの $$begin から $$end の間に、テストブロックごとに指定できます。
以下は、本セクションだけで使えるで始まる指定です。
@Label=テスト名
ログ、画面に表示するテスト名を指定します。
例: ログイン画面を表示する。HTML画面は、指定のフォルダに保存する。
$$begin
@label=ログイン画面を表示
@savehtml=./html/
P=Login
WriteSheet=Login

$$end
@で始まらない部分は、Name=Valueのクエリー部分と見なされます。
複数の画面のテストを行う場合は、
$$begin から $$endのテストブロックを複数設定します。
3) [PROCESS]セクション
[TEST]セクションにて定義した、各画面ごとのリクエストを、どのようなパターンでテストしていくか定義します。
以下は、本セクションで使えるで始まる指定です。
@Gotest=テスト番号,テスト番号,.,..
[TEST]セクションにて定義したテストブロックを指定します。
テスト番号は、
[TEST]セクションに、テストブロックを定義した順番であり、1から始まります。
   
@gotest=1,2,3
とすれば、1番目、2番目、3番目のテストを実行します。
@Loop = 1
テストの繰り返し回数を指定します。
例:テストブロック1〜5までを、10000回実行する。
$$begin
@gotest=1,2,3,4,5
@loop=10000
$$end
以上