インターフェイス テスト シナリオ: ログイン後にニックネームを変更する必要があることをどのように認識するか?

まず、ログインとニックネームの変更のインターフェイスの説明を見てみましょう。

インターフェイス自動テストを学習したい場合は、ここで一連のビデオをお勧めします。このビデオは、ステーション B のネットワーク全体でナンバー 1 のインターフェイス自動テスト チュートリアルであると言えます。ユーザーが 1,000 人に達し、収集して使用するメモがあります。各種マスターの技術交流: 798478386     

【更新】B局が教えるPythonインターフェースの自動テストの最も詳しい実践チュートリアル集(実戦最新版)_哔哩哔哩_bilibili 【更新】Pythonの自動テストの最も詳細な実践チュートリアル集B局が教えるインターフェース(実戦編) 最新版)には以下の動画が合計200本あります: 1. 【インターフェース自動化】ソフトウェアテストの市場状況とテスターの能力基準。, 2. [インターフェイスの自動化] Requests ライブラリとその基礎となるメソッド呼び出しロジックに精通した、3. [インターフェイスの自動化] インターフェイスの自動化戦闘と正規表現と JsonPath エクストラクターの適用など。さらにエキサイティングなビデオについては、注目してください。 UPアカウント。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337 

 

上記の業務に加えてニックネームを変更するには、ログインで取得したトークン値を渡すためのリクエストヘッダ「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) 実行後、結果を表示できます

写真

 

 

おすすめ

転載: blog.csdn.net/caixiangting/article/details/132132902