まず、ログインとニックネームの変更のインターフェイスの説明を見てみましょう。
インターフェイス自動テストを学習したい場合は、ここで一連のビデオをお勧めします。このビデオは、ステーション B のネットワーク全体でナンバー 1 のインターフェイス自動テスト チュートリアルであると言えます。ユーザーが 1,000 人に達し、収集して使用するメモがあります。各種マスターの技術交流: 798478386
上記の業務に加えてニックネームを変更するには、ログインで取得したトークン値を渡すためのリクエストヘッダ「Authorization」も追加する必要があります。
分析: ユーザー ID とトークン情報は、ログイン後の応答結果で返されます。ニックネームの更新中にパラメーター member_id を渡す必要があり、リクエスト ヘッダーでトークンを渡す必要があります。
つまり、「ログイン」の応答結果から ID とトークンの情報を取得し、それを「ニックネームの更新」リクエストに渡す方法を見つける必要があります。
返されるデータ形式は json であるため、JSON エクストラクターを使用して実装します。正規表現抽出ツールを使用することもできます。以前に書いた記事を参照してください。
01. JSON エクストラクターは複数の変数を設定して複数のデータを取得します
1. 最初にログイン要求を追加し、それを実行してログイン応答結果を確認します。
結果の表示方法を調整し、応答結果の ID とトークンの情報をより明確に確認できるようにしました。
JSONパス式の書き方は?たとえば、次の ID を取得したいとします。
-
$.data.id と書くと、$ はルート要素を表し、次に下に進んで第 1 レベルの属性を見つけ、最初にデータを見つけてから、次の子ノードで ID を見つけます。
-
$..id と記述して、ルート要素から直接 ID を再帰的に検索することもできます。
トークンの取得についても同様です。詳細については、次の記事を参照してください: Python は JsonPath を使用して、インターフェイス自動化テストでのパラメーターの関連付けとデータ検証を完了します。
2. ログインリクエストを右クリック --> ポストプロセッサ --> 「JSON Extractor」を追加します。
JSON エクストラクターの説明:
適用対象: アプリケーション範囲。
デフォルト値: 値が一致せず、エラーが書き込まれる場合に使用されるデフォルト値。
作成された変数の名前: 値を受け取る変数名、カスタム、複数の変数はセミコロンで区切られます。
JSON パス式: JSON パス式もセミコロンで区切られます。
一致番号 (0 はランダム): 0 はランダムを意味し、n は一致する値を取得し、-1 はすべてに一致します。最初に一致する値のみが取得された場合は、1 を入力します。
連結 var(suffix_ALL) の計算: 多数の結果が見つかった場合、プラグインは「,」区切り文字を使用してそれらを連結し、_ALL という名前の var に保存します。
jsonエクストラクターで値が正常に取得できているかを確認するには、Debug PostProcessorを追加して確認し、ユースケースを正常に実行する場合は削除または無効化に注意してください。
ログイン時に返された結果を比較すると、IDとトークンが正常に取得できていることがわかります。
3. 「ニックネームの変更」リクエストを追加し、json エクストラクターで取得した値を変数参照として使用します。スクリプトを実行すると、ニックネームが正常に変更されます。
02. JSONエクストラクターは1つの変数を設定して複数のデータを取得します
変数を取得しても、結果は複数のデータになるという状況にも遭遇します。
1. 例えば「ユーザー一覧取得」の場合、まず「ユーザー一覧取得」の応答結果を見てください。
ここですべてのユーザー ID を取得したい場合、json のパス式はどのように記述すればよいでしょうか?
$..id または $.data[*].id
2. JSON エクストラクターを追加して、すべてのユーザー ID 情報を取得します。
デバッグ用に Debug PostProcessor を追加し、通常の実行ユースケース用に削除または無効にします。すべてのユーザー ID 値が取得されたことがわかります。各 ID は、id_1、....id_22 を通じて取得できます。
3. 取得した各ユーザー ID は、「ユーザー ログブック」の結果を表示するために循環されます。
1) ループコントローラーを追加し、ループ数を設定します。
2) ループコントローラ配下に「User Logging Record」リクエストを追加し、以下の設定を行います。
JSON エクストラクターで一致した id_1,....id_22 は「ユーザー レコード」に渡す必要があるため、__counter は jmeter に付属するカウント関数であり、${__counter(,)} はこの関数を参照します。 、1から始まります。
id_${__counter()} は、1 回目は id_1 を実行し、2 回目は id_2 を実行し、ループ数 id_22 に達するまでこれを繰り返します。
__V は、jmeter に付属するネストされた変数関数です。最初に実行される id_${__counter()} は id_1、${__V(id_${__counter()},)} は ${id_1}、値 80 です。以下、${id_22} までループします
上記は、jmeter ツールバーの [ツール] --> [関数アシスタント] ダイアログ インターフェイスです。ヘルプを選択すると、対応する関数の関数の説明を表示できます。
3) 実行後、結果を表示できます