Java Vuser プロトコル
Java Vuser プロトコルを使用する Java 互換の仮想ユーザ・スクリプトを手動で作成できます。仮想ユーザ・スクリプトは Java コンパイラによってコンパイルされ,Java の標準規約をすべてサポートします。
注: Java スクリプトを使用するには,Java 環境がセットアップされていることを確認してください。詳細については,「Java プロトコル用の環境のセットアップ」を参照してください。
このトピックの内容:
手動で Java のスクリプトを作成する
Java 互換の仮想ユーザ・スクリプトを作成するには,まず新しい Java 仮想ユーザ・プロトコル・スクリプトを作成し,Java コードを挿入します。Java Vuser 関数を追加して,スクリプトを拡張したり,反復時にさまざまな値を使用できるように引数をパラメータ化したりできます。
手動で Java Vuser スクリプトを作成するには,次の手順を実行します。
-
Java Vuser スクリプトを新規作成します。詳細については,「仮想ユーザ・スクリプトの作成および表示」を参照してください。
-
スクリプトの Actions クラスにコードを挿入します。このクラスは,スクリプト・テンプレートが開いたときに右側のペインに表示されます。詳細については,「クラスとメソッド」を参照してください。
-
追加の API 関数を挿入します。VuGen には,Java Vuser スクリプト用の Java 固有の関数があります。これらの関数はすべて lrapi.lr クラスの静的メソッドです。
Java API 関数は,いくつかのカテゴリに分類されます。トランザクション,コマンド・ライン解析,情報,文字列,メッセージ,およびランタイム関数。
個々の関数の詳細については,関数リファレンス(該当するバージョンを選択) を参照してください。Java Vuser スクリプトを新規作成すると,import lrapi.* がスクリプトに自動的に挿入されます。
-
追加の Java クラスをスクリプトの先頭にインポートします。また,追加するクラスがスレッドセーフかつスケーラブルであることを確認します。
import java.io.*; import lrapi.*; public class Actions { ... }
-
[実行環境設定]>[Java 環境]>[クラスパス]で Java クラスにクラスパスを設定します。これらのファイルは参照として使用されますが,スクリプトのフォルダには含まれません。
-
ランデブー・ポイント,トランザクション,出力メッセージなどの要素でスクリプトを強化します。詳細については,「Java のスクリプトの拡張」を参照してください。
-
スクリプトを作成したら,VuGen でスタンドアロン・テストとして実行します。Java コンパイラ(javac)は,スクリプトに誤りがないかどうか調べてからコンパイルします。その後,スクリプトをシナリオやパフォーマンス・テストに統合できます。
注: 再生中に追加のファイルが必要な場合は,次のように追加します。[ソリューション エクスプローラ]ペインで,[追加ファイル]ノードを右クリックし,[ファイルをスクリプトに追加]を選択します。ファイルはスクリプトのフォルダにコピーされます。
クラスとメソッド
このタイプの仮想ユーザ・スクリプトを使用する場合は,すべてのコードを Actions クラスに配置します。Actions クラスには,init,action,end の 3 つのメソッドが含まれています。
import lrapi.*; public class Actions { public int init() { return 0; } public int action() { return 0; } public int end() { return 0; } }
次の表に,各メソッドに何を含める必要があり,各メソッドがどのタイミングで呼び出されるかを示します。
スクリプトのメソッド
![]() |
エミュレーション内容
![]() |
実行のタイミング
![]() |
---|---|---|
「init メソッド」 |
サーバへのログイン
|
仮想ユーザが初期化(ロード)されるとき
|
「action メソッド」 |
クライアントのアクティビティ
|
仮想ユーザが「実行中」状態のとき
|
「end メソッド」 |
ログオフ処理
|
仮想ユーザを終了または停止するとき
|
すべてのログイン手続きと一度だけ行う設定を init メソッドに置きます。init メソッドは,仮想ユーザがスクリプトの実行を開始するときに 1 回だけ実行されます。次のサンプル init メソッドではアプレットを初期化します。
このセクションに org.omg.CORBA.ORB 関数をインポートして,この関数が反復のたびに呼び出されないようにします。
import org.omg.CORBA.*; import org.omg.CORBA.ORB.*; import lrapi.lr; // Public function: init public int init() throws Throwable { // Initialize Orb instance... MApplet mapplet = new MApplet("http://chaos/classes/", null); orb = org.omg.CORBA.ORB.init(mapplet, null); ...
すべての仮想ユーザ・アクションを action メソッドに配置します。action メソッドは,実行環境設定で指定した反復回数に従って実行されます。反復設定の詳細については,「実行環境設定」を参照してください。次のサンプル action メソッドでは,仮想ユーザ ID を取得して出力しています。
public int action() { lr.message("vuser:" + lr.get_vuser_id() + " xxx"); return 0; }
end メソッドには,サーバからのログオフや環境の後始末など,スクリプトの終了時に仮想ユーザに実行させるコードを配置します。
end メソッドは,仮想ユーザがスクリプトの実行を終了するときに 1 回だけ実行されます。次の例に示す end メソッドでは「End」というメッセージを実行ログに出力しています。
public int end() { lr.message("End"); return 0; }
Java Vuser スクリプトは,スケーラブルなマルチ・スレッド・アプリケーションとして稼動します。スクリプトにユーザ定義のクラスを含める場合は,コードをスレッドセーフにする必要があります。詳細については,「Java プロトコルのプログラミングに関するヒント」を参照してください。
関連項目:
- 「Java プロトコル」
- Java スクリプトを記録し,再生するための 「Java Record Replay プロトコル」
- HTTP 経由の Java リモート呼び出しを記録し,再生するための 「Java over HTTP プロトコル」