目次
序文:
インターフェイスのパフォーマンス テストを実行するときは、通常、さまざまなシナリオに合わせてパラメーター化された操作を実行する必要があります。JMeter は、テスターがテスト ケースを構築しやすくするためのさまざまなパラメータ化方法を提供する強力なパフォーマンス テスト ツールです。
パラメトリックコンセプト
テスト作業では、通常、テストの包括性を達成するためにさまざまなシナリオをテストするためにさまざまなデータ送信リクエストが使用されます。これには、テストのニーズを満たすために各反復で異なるデータを使用できるように、いくつかのフィールドのパラメータ化が必要です。
一般的に使用される機能およびパフォーマンス テスト ツールの 1 つである Jmeter のパラメータ化方法も比較的柔軟であり、ユーザー パラメータ、ユーザー定義変数、CSV データ ファイル、関数アシスタントの 4 つのタイプに主に分類されます。パラメーター化されたメソッドの使用方法については、以下で詳しく説明します。
パラメータ化された方法
1. ユーザーパラメータ
1. 利用シーン
これは、トランザクションのために特定のシステムにログインするユーザーが少ないことをテストおよびシミュレートするなど、パラメーターの値の範囲が狭いシナリオに適しています。
2. 操作手順
(1) ユーザパラメータ機能モジュールの追加
(2) パラメータ変数とユーザー値を設定する
反復ごとに更新を確認するように注意してください。そうしないと、毎回同じデータが使用されてしまいます。
(3) HTTPリクエストのパラメータ値またはメッセージ本文データのパラメータ化されたフィールドを構成します
HTTP リクエストでは、パラメータを設定するか、メッセージ内のメッセージ本文データを使用してリクエストが送信されます。いずれの方法でも、パラメータ化された値はユーザー パラメータの変数名と一致している必要があります。
(4) 結果ツリーの表示
スレッド グループ内のスレッド数を 2 に設定し、[実行] をクリックすると、結果ツリーを表示してパラメータの使用状況を確認できます。
2. ユーザー変数
1. 利用シーン
これは通常、サーバーのアドレスやポートなど、リクエストに応じて繰り返し変更する必要のないテスト計画のパラメーター設定に使用されます。
2. 操作手順
(1) ユーザ定義変数機能モジュールの追加
(2) ユーザー定義変数のパラメータ値を設定する
さまざまなサーバー アドレスとポートを構成する例を次に示します。
(3) HTTPリクエストのパラメータ値またはメッセージ本文データのパラメータ化されたフィールドを構成します
リクエストを送信するサーバーのアドレスが変更された場合、サーバーのパラメーター化された値を変更するだけで、リクエストを別のサーバーに送信できます。もちろん、ユーザー定義変数を使用して、ログイン ユーザー、取引金額、アカウントなどのシナリオをパラメーター化することもできます。
(4) 結果ツリーの表示
サーバー名が ${host1} に設定され、ポートが ${post1} に設定されている場合、Baidu サーバーにアクセスします。
サーバー名が ${host2} に設定され、ポートが ${post2} に設定されている場合、Firefox サーバーにアクセスします。
3.CSVデータファイル
1. 利用シーン
これは、パラメーター値の範囲が広いシナリオに適しています。この方法は、柔軟性が高く、大量のデータをパラメーター化する際の操作が便利です。数千のアカウント シナリオを横断する必要がある場合によく使用されます。
2. 操作手順
(1) パラメータ設定ファイルの準備
パラメータ化ファイルは通常、txt または csv 形式です。各行は 1 つのデータを表します。各データには複数の属性を含めることができます。異なる属性は区切り文字で区切る必要があります。CSV データ ファイルにはデータ量の要件はありません。パラメータ化の数が必要です。量が多い場合は、次のパラメータ化方法を使用する必要があります。
(2) CSVデータファイル設定機能モジュールの追加
(3) CSVデータファイルのパラメータを設定する
ファイルパラメータ設定の詳細は次のとおりです。
取扱説明書:
ファイルの終わりに達した場合の再循環と、ファイルの終わりに達した場合のスレッドの停止との関係は次のとおりです。
ファイルの終わりの文字が検出され、ループ項目が再び true になった場合、ファイルの終わりの文字が検出されたときにスレッド項目を停止しても意味がありません。これは、前の項目がループ内で読み取りを続けるように制御するためです。
ファイル終端文字が発生し、サイクル項目が false の場合、ファイル終端文字停止スレッド項目が true の場合、スレッド数が 4 でパラメータ値が 3 の場合、リクエストは実行されます。 3回;
ファイル終端文字が発生し、サイクル項目が false の場合、ファイル終端文字停止スレッド項目が false の場合、スレッド数が 4 でパラメータ値が 3 の場合、リクエストは実行されます。 4 回実行されますが、4 番目のリクエストにはパラメーターがないため、最後のリクエストではエラーが報告されます。
(4) HTTPリクエストのパラメータ値またはメッセージ本文データのパラメータ化されたフィールドを構成します
(5) 結果ツリーの表示
スレッド グループ内のスレッド数は 3 に設定され、サイクル数は 1 に設定されます。実行結果のパラメーター値が CSV ファイル内のデータと一致していることがわかります。
4. 機能アシスタント
1. 利用シーン
パラメーターが乱数であるか、メッセージにシリアル番号フィールド (反復ごとに繰り返すことができない) が含まれている場合、関数アシスタントを使用して必要なデータを生成できます。必要なフィールドのデータが長くて繰り返すことができない場合、 time 関数は通常、カウンターと結合され、適切な長さの有効なデータに結合されます。
Jmeterには豊富な組み込み関数があり、大きく分けて以下の7種類がありますが、ここでは時刻関数とカウンタの組み合わせを例に、具体的な利用手順を紹介します。
2. 操作手順
(1) 必要に応じて機能を設定する
[関数アシスタント] ダイアログ ボックスを開いた後、時間関数を選択し、yyyyMMddHHmmss や MMddHHmmss などの希望の時間形式を入力し、[生成] をクリックして参照可能なパラメーター化関数を生成します。
(2) ユーザー定義変数の設定
通常、生成された参照可能なパラメーター化関数は、ユーザー定義変数の値として設定されます。
(3) カウンタ機能モジュールの追加
(4) カウンタモジュールのパラメータを設定する
20 桁の長さの繰り返しできないシリアル番号が必要な場合は、time 関数を使用して 16 桁の値を生成し、カウンターを使用して 6 桁のシーケンス値を生成し、その 2 つを結合して次のようにします。 20 桁のシリアル番号を生成し、データを重複させません:
(5) HTTPリクエストのパラメータ値またはメッセージ本文データのパラメータ化されたフィールドを設定します
time 関数とカウンターを resqno 変数に結合して、複数同時実行であっても resqno 変数が繰り返されないようにします。
(6) 結果ツリーの表示
上記は、Jmeter で一般的に使用される 4 つのパラメータ化方法です。日々のテスト作業で友人に少しでも役立つことを願っています。
ここに来た者として、皆さんが寄り道をしないように願っていますが、ここでは、自動テストを進める上で必要なことをいくつか共有し、皆さんのお役に立てれば幸いです。(WEB 自動テスト、アプリ自動テスト、インターフェイス自動テスト、継続的インテグレーション、自動テスト開発、大規模な工場面接の質問、履歴書のテンプレートなど)、より良い進歩をもたらすことができると信じています。
[自動テスト] を終了するだけです