このセクションでは、コマンド ライン インターフェイスから既存の負荷テストを実行する方法について説明します。このセクションの内容:
負荷テストの実行
Load Test コマンドライン インターフェイスから、既存のロードテスト (.lt) ファイルを実行できます。Load Test コマンドラインは、「どの .lt ファイルを開き、どのようにテストを実行するか」を指定するスクリプトを実行します。テストを実行したいときには、スクリプトを呼び出します。
スクリプトの作成
文字エンコーディングが UTF-8 のプレーン テキスト ファイルを作成し、負荷テストを実行するためのコマンドを追加します。お使いのシステムによっては、別の文字エンコーディング規格でテキスト ファイルが作成される場合があります。スクリプトの実行時に問題が発生した場合は、正しいエンコーディングが使用されているかどうかを確認してください。次の書式でスクリプトを記述します。
open <PATH-TO-LT-FILE> loadtest <OPTIONS> <SCENARIO-NAME>
loadtest
コマンドは、指定されたシナリオを使用してテスト スイートを実行します。使用可能な loadtest コマンド オプションの詳細については、「Load Test コマンド リファレンス」を参照してください。
変数の使用
次の構文を使用して、スクリプトで使用する変数を宣言できます。
var VariableName1 = VariableValue var VariableName2 = "Variable Value with Spaces"
宣言済みの変数に新しい名前を割り当てることができます。
var VariableName1 = NewVariableValue
サンプル スクリプト
下記はサンプル スクリプトです (スクリプトのコメントは 「#」印の後に記述します)。
# # Using script commands # var report-home = C:\CONTINUOUS_LOAD_TEST\ENTERPRISE_LOAD_TEST var minutes = 1 var scenario = "Steady Load" var base = tests/loadtester/accuracytest/tests var category = Accuracy var test-name = 1-Profile-HPS open ${base}/${test-name}.lt loadtest -minutes ${minutes} -allReports ${report-home}/%d/${category}/${test-name} ${scenario}
スクリプトの実行
コマンドラインから Load Test を呼び出して、スクリプトを実行します。
lt.exe -cmd -run <PATH_TO_YOUR_SCRIPT> // WINDOWS ./loadtest -cmd -run <PATH_TO_YOUR_SCRIPT> // Linux and macOS
-cmd
引数は、コマンドライン モードで Load Test を開始します。-run
引数は、指定された Load Test スクリプトを実行します。コマンド ラインからスクリプトを実行するには、両方の引数が必要です。
lt.exe -cmd -run <PATH_TO_YOUR_SCRIPT> // WINDOWS ./loadtest -cmd -run <PATH_TO_YOUR_SCRIPT> // Linux and macOS
動的なライセンス要求
コマンドライン モードで Load Test を実行すると、GUI モードで設定したライセンスがデフォルトで使用されます。-licenseServer
オプションを使用して、Parasoft License Server にライセンスを動的に要求することもできます。License Server のベース URL を指定し、-licenseVus
オプションを使用して、ライセンスで許可する仮想ユーザーの数を指定します。注意: ベース URL でポートが指定されていない場合、デフォルトのポート (HTTP の場合は 80、HTTPS の場合は 443) が使用されます。
lt.exe -cmd -run <PATH_TO_YOUR_SCRIPT> -licenseServer <BASE_URL> -licenseUsername username -licensePassword password -licenseVus <INTEGER>
./loadtest -cmd -run <PATH_TO_YOUR_SCRIPT> -licenseServer <BASE_URL> -licenseUsername username -licensePassword password -licenseVus <INTEGER>
例
-licenseServer https://licenseserver.mydomain.com -licenseUsername username -licensePassword abc0123456789def -licenseVus 100
-licenseServer http://licenseserver:8080 -licenseUsername username -licensePassword password -licenseVus Unlimited
-licenseServer https://licenseserver.mydomain.com:8443
リモート マシンでの負荷テストの実行
コマンドラインからリモート マシンで負荷テストを実行することができます。それには、Load Test のリモート インスタンスをサーバー モードで起動し、リモート サーバーでテストを実行するように設定された Load Test のローカル インスタンスでプロジェクトを実行します。
サーバーモードでの Load Test の起動
Load Test をリモートで実行できるようにするには、-loadtestserver
フラグを使用してポート番号を指定します。ポート番号は、サーバーがリスンしているローカル マシンのポートです。ポートが指定されていない場合、デフォルトの 8189 が使用されます。
lt -loadtestserver [PORT]
./loadtest -loadtestserver [PORT]
リモート プロジェクトの設定
詳細については「リモート マシンでの負荷テストの実行」を参照してください。
別のネットワークにある Load Test マシンの操作
GUI モードで実行され、負荷テストを制御するためのインターフェイスを提供するマシンが Load Test コントローラー マシンです。コントローラーは、別のネットワークにある Load Test Server マシンと通信できます。ただし、それらのネットワークを中継するネットワーク装置が、Load Test Server マシンが待機しているポート上での通信を許可している必要があります。
たとえば、ネットワーク A で Load Test コントローラーを実行し、ネットワーク B で lt -loadtestserver 10095
コマンドによって Load Test Server をポート 10095 で開始した場合、ネットワーク A とネットワーク B 間のポート 10095 での通信は、ネットワーク装置によって制限されてはなりません。該当ポートでのすべての TCP トラフィックを許可してください。ネットワーク構成の問題については、システムまたはネットワーク管理者に相談してください。
Load Test コマンド リファレンス
次のコマンドを使用すると、Load Test Server を開始して負荷テストを実行できます。
Load Test コマンド ライン オプション
次のコマンドは、Windows のコマンド プロンプトまたは Linux のシェルで使用します。
オプション | 説明 |
---|---|
-cmd | コマンドライン モードで Load Test を開始します。Load Test をローカルで実行するために必要です。 |
-run | 実行する Load Test スクリプトを指定します。Load Test をローカルで実行するために必要です。 |
-help | ヘルプ情報を表示する。テストは実行しません。 |
-licenseServer <BASE_URL> | Parasoft License Server のベース URL を指定します。デフォルトでは、Load Test は GUI で設定されたサーバーにライセンスを要求しますが、このオプションを使用すると、動的にライセンスを要求することができます。任意。 |
-licenseUsername <USERNAME> | Parasoft License Server のライセンスに関連付けられたユーザー名を指定します。この引数を指定しない場合、認証は使用されません。任意。 |
-licensePassword <PASSWORD/ENCODED_PASSWORD> | Parasoft License Server のライセンスに関連付けられた、パスワードまたはエンコードされたパスワードを指定します。パスワードは、soatestcli -encodepass コマンドライン オプションを使用してエンコードできます。この引数を指定しない場合、空のパスワードが認証に使用されます。任意。 |
-licenseVus <VALUE> | -licenseServer オプションで指定したサーバーに要求したライセンスで許可される仮想ユーザーの数を指定します。整数値を指定します。無制限の仮想ユーザーライセンスの場合は unlimited を指定します。 |
| 指定されたポート番号で Load Test Server を開始します。指定がない場合はデフォルトのポート 8189 を使用します。たとえばポート 8999 で Load Test Server を開始する場合、コマンド ライン引数で次のようにポート番号を指定します。
|
-password <LONG_PASSWORD_STRING> | Load Test に渡すノードロック ライセンスを指定します。 |
-J<JVM_OPTION> | Load Test JVM に渡す追加の JVM オプションを指定します。( 例:
|
Load Test スクリプト コマンド
コマンド | オプション および オプションの引数 | 説明 |
---|---|---|
var | 書式: 変数名を宣言し、値を代入します。変数の値を取得するには、${variable_name} という構文を使用します。 | |
open | 書式: 指定されたプロジェクトを Load Test で開きます。プロジェクトをロードした後、loadtest コマンドを使用します。 | |
loadtest | 書式: 指定されたシナリオおよびオプションを使用してテスト スイートの負荷テストを実行します。詳細については下の行を参照してください。 | |
-settings path_to_local_settings_file | 構成および設定パラメーターを含む設定ファイル (Settings Filesを参照) へのパスを指定します。 | |
-env environment_name | アクティブな環境を設定します。環境は、Load Test が使用する SOAtest プロジェクトの一部です。 | |
-minutes number | テスト持続時間を分単位で指定します。コマンドでテスト持続時間を指定した場合、シナリオで指定されたテスト持続時間が上書きされます。 | |
-vus number | 負荷テスト構成に登録された各マシンで実行する仮想ユーザー数を設定します。実行モードが「加重プロファイル」に切り替えられ、負荷テスト構成に登録された各マシンは、指定された数の仮想ユーザーを Steady Load パターンで実行するよう設定されます。 | |
-hps number | 負荷テスト構成に登録された各マシンで実行するヒット (秒)を設定します。実行モードが「加重プロファイル」に切り替えられ、負荷テスト構成に登録された各マシンは、指定されたヒット (秒)を Steady Load パターンで実行するよう設定されます。 | |
-report path_to_report_file | 指定された名前のバイナリ レポートを生成します。 | |
-html html_directory | 指定されたディレクトリに、指定された名前の HTML レポートを生成します。 | |
-allReports reportsPath | 指定されたディレクトリ パスの下に、バイナリ、XML、HTML レポートを生成します。 | |
-trimReportSeconds headSeconds tailSeconds | レポートの先頭と末尾からカットする期間 (単位:秒) を指定します。*秒数は正の整数でなければなりません。headSeconds と tailSeconds の値の合計がレポート期間より長い場合、トリミングは行われません。 | |
-trimReportPercentage headPercentage tailPercentage | レポートの先頭と末尾からカットする期間 (レポート期間に対する相対的なパーセンテージ) を指定します。*パーセンテージの値は正の整数でなければなりません。headPercentage と tailPercentage の値の合計が 100 以上の場合、トリミングは行われません。 |
* Load Test がレポートするデータは、約 3 秒間隔で収集および保存されます。trimReport コマンドは、指定された期間にあてはまるすべてのレポート収集ポイントを破棄します。レポート収集ポイントの回数と指定されたトリム値は一致しない場合がある (実際に多くの場合は一致しない) ため、レポートの先頭および末尾からカットされる実際の期間は、コマンド ラインで指定された期間より長くなる可能性があります。レポートの先頭および末尾から余分にカットされる期間は、データ収集間隔を超えることはありません。レポートの断片がどのように保存されるかの詳細については、「Understanding Report Interval Selection」を参照してください。
設定ファイル
設定ファイルを使用すると、Load Test のさまざまなオプションをコントロールできます。複数のプロジェクトに対して複数の設定ファイルを作成し、-settings
スクリプト オプションを使用して、コマンド ライン テストで使用するファイルを指定できます。
ファイルにパラメーターが指定されている場合、Load Test 設定ページで指定されているパラメーターが上書きされます。ファイルにパラメーターが指定されていない場合、Load Test 設定ページで指定されているパラメーターが使用されます。Load Test 設定ページにパラメーターが存在しない場合、デフォルト値が使用されます。
デフォルト設定を使用するには、ファイルの設定を削除するか、コメントアウトします。ファイルでは次の書式を使用して、名前/値のパラメーターを記述します。
nameString=valueString
各名前/値のペアは、個別の行に記述する必要があります。名前/値のペアをコメントアウトするには、ハッシュ記号 「#」を使用します。
利用可能な設定
設定 | 説明 |
---|---|
echo=true|false | true の場合、Load Test は設定をコンソールに出力します。デフォルトの設定は true です。この設定を使用する場合、設定ファイルの最初のエントリでなければなりません。 |
| コマンド ライン モードでのコンソール ログ記録を有効にします。下のConsole Loggingセクションを参照してください。デフォルトの設定は無効です。 |
コンソールのログ記録
コンソールのログ記録を使用すると、コマンド ライン モードでの負荷テストのステータス情報をテスト実行中に参照できます。コンソールのログ記録が有効な場合 (console.log=enable
設定を参照)、主要な負荷テスト実行時パラメーターがコンソールに出力されます。負荷テストのステータスは、30 秒ごとに 1 行で表示されます。以下の情報が表示されます。
- システム時間
- 完了率
- 実行時間完了済み秒数/合計
- 成功したテスト/失敗したテスト合計数
- 直前のログ以後の平均仮想ユーザー数
- 直前のログ以後の平均ヒット (秒)
例:
2011.04.21 17:54:56 MDT | 53% complete | 32/60 seconds | passed 245/failed 0 | avg. VUs 4 |avg. HPS 8