PTS パフォーマンステストでは、パラメーター化を使用して動的に変化するサービスリクエストを構築できます。 JMeter ストレステストを使用する場合に動的ストレステストと同じ要件がある場合は、[CSV データセット設定] を JMeter スクリプトに追加して、CSV ファイルからパラメーターを読み取ることをお勧めします。 同時に、JMeter パフォーマンステストでは、CSV ファイルの分割と、CSV ファイル内のデータの各ストレステストエンジンへの配布がサポートされています。
背景
[CSV データセット設定] は、JMeter が提供する公式の構成要素であり、CSV ファイルからデータを読み取り、データを複数の変数に分割します。 この要素は、多数の変数を処理する場合に適しています。
アップロードされた CSV ファイルの JMeter スクリプトに [CSV データセット設定] が追加されていない場合、CSV ファイルは、テーブルヘッダー(変数名)が含まれていないかのようにデフォルトで分割されます。 操作を容易にし、データが誤って分割されないようにするために、[CSV データセット設定] を構成して CSV パラメーターファイルを使用することをお勧めします。
CSV パラメーターファイルを構成する
動的に変化するストレステストリクエストを構築するには、JMeter スクリプトで CSV ファイルを構成する必要があります。
たとえば、100 人のユーザーが同時に Web サイトにログオンするときの Web サイトのログオン API のパフォーマンスをテストするには、100 の異なるユーザーログオンデータレコードを生成する必要があります。 次の手順を実行します。
100 件のユーザーデータレコードを含む CSV ファイルを作成します。 CSV ファイルの最初の行はテーブルヘッダーで、変数名を示します。 基本的な形式の例を次に示します。
username,password user1,Password1 user2,Password2 user3,Password3
説明CSV ファイルにテーブルヘッダーが含まれていない場合は、[CSV データセット設定] で変数名を構成します。
[CSV データセット設定] を [スレッドグループ] に追加します。
[CSV データセット設定] 構成セクションで、CSV ファイル名を入力します。 他の構成項目についてはデフォルト値を保持します。 JMeter は、CSV ファイルのテーブルヘッダーからパラメーター名を自動的に変数名として読み取ります。
説明CSV ファイルにテーブルヘッダーが含まれていない場合は、[CSV データセット設定] の [変数名(カンマ区切り)] に
username
とpassword
を入力します。サンプラー を構成します。
スレッドグループを右クリックし、[追加] > [サンプラー] > [HTTPリクエスト] を選択します。サービス API に基づいて構成項目を設定します。例:
[名前]: API 名を指定します。
[web サーバー]: 特定のサービス API プロトコル、サービス名または IP アドレス、およびポート番号を入力します。
[HTTP リクエスト]: リクエストメソッドを選択し、パスを入力します。
[body データ] タブ:
${username}
と${password}
を使用して、CSV ファイル内のパラメーターを読み取ります。
JMeter テストスクリプトを保存します。
テストスクリプトと CSV ファイルを PTS にアップロードします。 詳細については、「JMeter シナリオを作成する」をご参照ください。
CSV ファイルを分割する
CSV ファイルの横にある [ファイルを分割] を選択して、CSV ファイル内のデータを各ストレステストエンジンに分割します。
ファイルヘッダーを含む CSV ファイルを分割する
元の CSV ファイルにファイルヘッダーが含まれている場合、分割された各ファイルにはこのヘッダーが保持され、データは重複しません。 データレコードを均等に配布できない場合、一部のエンジンでは他のエンジンよりもデータレコードが 1 つ多くなることがあります。
たとえば、上記のサンプルファイルのデータが 2 つのエンジンに分割される場合:
最初のファイルには次のものが含まれます。
username,password user1,Password1 user3,Password3
2 番目のファイルには次のものが含まれます。
username,password user2,Password2
ファイルヘッダーを含まない CSV ファイルを分割する
CSV ファイルにファイルヘッダーが含まれていない場合(最初の行が CSV データの場合)、たとえば、「b.csv」という名前のファイルの内容が次のようになっている場合:
user1,Password1
user2,Password2
user3,Password3
次の図に示すように、[jmeter で変数名を構成] します。
この場合、CSV ファイルの分割を選択すると、分割ファイルにはファイルヘッダーが保持されません。 データレコードを均等に配布できない場合、一部のエンジンでは他のエンジンよりもデータレコードが 1 つ多くなることがあります。 たとえば、データが 2 つのエンジンに分割される場合:
最初のファイルには次のものが含まれます。
user1,Password1 user3,Password3
2 番目のファイルには次のものが含まれます。
user2,Password2
詳細
CSV ファイルの構成と使用方法の詳細については、「JMeter ドキュメント」をご参照ください。