ネットワーク全体で最も詳細な、Jmeter パフォーマンス テスト - 詳細なパフォーマンスの基礎、パラメーター化された関数の値 (2)


序文

パラメータ化の詳細説明
Jmeter で変数のパラメータ化を実現できる方法は次のとおりです。

ユーザー定義変数;
ユーザー パラメータ;

両者の違い

ユーザー定義変数 ユーザーパラメータ
範囲 グローバル、テスト計画全体に影響を与えることができます (複数のスレッド グループにまたがることができます) ローカル。現在のスレッド グループまたは現在のサンプラーにのみ適用できます。
エレメント 構成要素 プリプロセッサ
実行順序 構成要素なので実行順序が最上位 構成要素より下
価値を得る 実行を開始すると、値は一度取得され、実行プロセス中に値が動的に取得されることはなく、値が再度変更されることはありません。 値は操作の開始時に一度取得されますが、操作中に動的に値を取得することもできます。

ユーザー定義変数

構成要素を追加 -> ユーザー定義変数
スクリプトで変数を呼び出すには、次を使用できます: ${変数名}

関数は値として変数に入れることもできます

写真の説明を追加してください

ユーザーパラメータ

プリプロセッサを追加 -> ユーザー パラメータ
スクリプトで変数を呼び出すには、次を使用できます: ${変数名}

写真の説明を追加してください

反復ごとに 1 回更新するオプションがあることに注意してください。オンにすると、現在のスレッド グループが繰り返されるたびにデータが 1 回更新されます。

ここでパラメーターを使用するスレッド グループに複数の要求がある場合、1 回の反復ですべてのパラメーターの値が固定され、次の反復でのみ更新されます。

反対に、チェックされていない場合は、使用する必要があるパラメーターに遭遇するたびに、新しいパラメーター値が取得されます。

写真の説明を追加してください

関数

Jmeter にはいくつかの関数が付属しており、[ツール] -> [関数アシスタント] ダイアログ ボックスで表示できます。

次のような目的の関数を見つけます ランダムはランダム関数です, ランダム関数のパラメータを設定します, 最小値は1です, 最大値は99です, ポイント生成は関数式を自動的に生成します, この関数式をコピーするだけで、で使用できるスクリプトに入れます。

写真の説明を追加してください

共通機能

すべての関数は、直接使用するだけでなく、ユーザー定義変数やパラメータ変数に入れることもでき、使用方法は同じです。

スプライス機能 (__V)

この関数は、変数名と変数を組み合わせることができます
。ここで、シーンがあります。3 つのパラメーターがあり、パラメーター名は var_1、var_2、var_3 であり、これら 3 つのパラメーターを参照したいと考えています。

写真の説明を追加してください

1 回目は var_1、2 回目は var_2 というように順番に値をとらせたい場合は、このようなシーンで __V 関数を使用できます。

関数アシスタントを使用して V 関数を見つけ、最初のパラメーターに var_${__counter(,) と入力し、[生成] をクリックして関数を取得し、それをスクリプトに入れて使用します

写真の説明を追加してください

再実行、3 回反復、3 つの値を取得

写真の説明を追加してください

スレッド グループ全体の値

jmeter の「プロパティ」であるクロススレッド グループの値は、プロパティと大きく関係しています。

jmeter ディレクトリで、.properties で終わるファイルは Jmeter プロパティ構成ファイルです。
これらのプロパティは、Jmeter ツールに付属するタグです。

静的属性:
プロパティ ファイルに記述される属性情報、すべて静的属性;
動的属性: 実行中のプロセス中に動的に定義される属性。

属性は Jmeter 自体にラベルがあるため、jmeter 内の任意のスレッド グループで使用でき、クロススレッド グループの値もこの機能に基づいています。

本題に戻ると、クロススレッド グループの値を実現するために必要な関数が 2 つあります。

__P: プロパティを取得します (__property で置き換えることもできます);
__setProperty: 動的プロパティを設定します。

例:
属性に年齢を追加します。値は 1~99 ランダムです

写真の説明を追加してください

テスト計画を右クリック -> 非テスト コンポーネント -> 属性表示、属性を表示できます属性
に年齢が追加され、値が 56 になっていることがわかります

写真の説明を追加してください

次に、別のスレッド グループを作成し、デバッグ サンプラーとリスナーを追加します
_P を使用して、プロパティから値を取得します

写真の説明を追加してください

実行すると、値が取得できることがわかります。値は 72 です。値は、再度実行しているため変更されます。

写真の説明を追加してください

注:
複数のスレッド グループが同時に有効になっている場合、これらのスレッド グループは必ずしも上から下の順序で実行されるとは限らず、デフォルトでは並列であるため、次のスレッドの実行が前のスレッドよりも早く完了する可能性があります。グループ。

そのため、複数のスレッド グループにわたってこのメソッドを使用すると、取得される値が同じであったり、null 値が取得されたりする場合があります。

ただし、パフォーマンス テストのシナリオでは、これは問題ではありません.結局のところ、誰もがログイン時に 100% 正しいパスワードを入力するわけではありません.時折、数人が間違ったパスワードを入力すると、サーバーはパスワードが間違っていることを要求します. . テストは通常​​のシナリオです。

ユーザー定義変数はグローバルであり、複数のスレッド グループにまたがることができますが、ユーザー定義変数は実行時に 1 回だけ値を取得することに注意してください。! 運用中は変わりません!

スレッド グループの実行順序を変更する (非推奨)

デフォルトでは、Jmeter のスレッド グループは並列化されています。
しかし、デフォルトなので変更可能ということで、変更方法は非常に簡単で、テスト計画では「各スレッドグループを個別に実行する」にチェックを入れます。このようにして、次のスレッド グループは、前のスレッド グループの実行が終了した後にのみ実行されます。

写真の説明を追加してください

パフォーマンス テストでは、ティックは必要ありません。

確認後、最初のスレッドグループの実行が終了した後、2 番目のスレッドグループが実行を開始します. 最初のスレッドグループが 10 回実行する必要がある場合、2 番目のスレッドグループは 10 回の実行が完了するまで開始されません.値が取得される場合、それは最初のスレッド グループの最後の実行の結果のみです。

これは性能試験の混合シーン試験に大きく影響しますが、性能試験ではチェックしません。

以下は、私がコンパイルした2023年の最も完全なソフトウェアテストエンジニア学習知識アーキテクチャシステム図です。

1. Pythonプログラミングの入門から習得まで

写真の説明を追加してください

2.インターフェース自動化プロジェクト実戦

写真の説明を追加してください

3. Web自動化プロジェクトの実戦

写真の説明を追加してください

4. アプリ自動化プロジェクトの実戦

写真の説明を追加してください

5. 一流メーカーのレジュメ

写真の説明を追加してください

6. DevOps システムのテストと開発

写真の説明を追加してください

7. 一般的に使用される自動テスト ツール

写真の説明を追加してください

八、JMeterの性能テスト

写真の説明を追加してください

9. まとめ(最後にちょっとしたサプライズ)

夢に向かって果敢に挑戦し、常に挑戦してください。失敗はひどいものではなく、成功の母です。根気強く続ける限り、誰もがなりたい自分になるチャンスがあります。

人生は果てしない 闘争は果てしない 道は長くて遠く 上も下も探る 狂気だけが真の進歩を遂げる 人生を変えたければまず自分を変えなければならない ポジティブな人間になろうそしてあなたは無限の喜びを得るでしょう。

難しいからやらないのではなく、やらないから難しくするのです。挑戦し、果敢に前進し、決してあきらめず、最終的な勝利は忍耐する者のものです。

おすすめ

転載: blog.csdn.net/shuang_waiwai/article/details/130062541