ネットワーク全体で最も詳細な Jmeter パフォーマンス テスト - 詳細なパフォーマンスの基本、インターフェイスの関連付け、および Java スクリプトの記述 (3)


序文

インターフェイスの関連付け

インターフェイスの関連付けとは、フロント インターフェイスの動的データ情報を抽出し、それをバック インターフェイスの受信パラメータとして使用することです。
ただし、Cookie を使用して情報を管理する場合は、エクストラクタではなく Cookie マネージャを使用してください。

また、Cookie の内容を知らずに Cookie Manager 情報の内容を変更しないでください。
控えめに言って、ログイン インターフェイスが使用されている限り、Cookie が実際に使用されているかどうかに関係なく、Cookie を追加することをお勧めします。

JSON エクストラクタ

ビューの結果ツリーでは、応答コンテンツの形式を変更できます

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

ここでjson形式を選択すると、レスポンスの内容がjson形式で表示されます

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

この下に入力ボックスがあり、json の抽出式を入力できます。ここで json の抽出式をテストできます

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

トピックに戻ると、これらのデータを抽出してスクリプトで使用するには、Json エクストラクタを使用する必要があります。
スレッド グループを右クリックし、ポスト プロセッサを追加 -> json エクストラクタ

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

使い方は上図のようにとても簡単です. Names of created variables に変数名を入力します. この変数名はスクリプト上で使用されます. 次に、JSON パス式に JSON 抽出式を入力します。

また、JSON が複数の値を提案する場合はリストを返しますが、このとき、Match No が満たされている場合と満たされていない場合では、異なる結果が生成されます。

未入力または 0 の場合はリストから値をランダムに選択し、
-1 の場合はリストの各値を 1 から順番に出力します (goods_1、goods_2、goods_3... など)。

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

0 の場合、対応する添字の値をとります (添字は 1 から始まります)。

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

最後に、JSON エクストラクタに複数の抽出式を入力する場合は、デフォルト値を入力し、「;」を使用して各変数と抽出式を区別する必要があります。

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

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

通常の抽出器

正規表現テストは、ここでテストできます: https://c.runoob.com/front-end/854
普遍的な正規表現があります: 左枠 (.*?) 右枠ですが、この表現は改行文字と一致しません。

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

複数の値を抽出する場合は、次の方法を参照できます。

正規表現: "gqid": "(. ?)"(. ?) "token": "(. ?)"
ここで正規表現 (. ?) が 3 つあるため、
抽出時に 3 つの値が抽出されることになります。 、しかし、実際に必要なのは gqid と token の 2 つの値だけなので、テンプレートが必要です。

テンプレート: 1 11 3 33 正規表現(. ?)が3
つあるので、テンプレートではここに1 1と書く1 3 33 は1 番目と 3 番目の値を抽出することを意味します (.?)

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

抽出結果を利用する場合は、単にre1を利用するのではなく、re1_g1とre1_g2を利用する

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

JmeterでJavaスクリプトを書く

ビーンセル

まず第一に、Beanshell は小さく、無料で、組み込み可能な Java ソース インタープリターです。Java構文と式を実行できます

Jmeter では、Beanshell は次のことができます:
独自の jar パッケージを導入して拡張機能を実現する;
Java コードを記述して独自のロジック機能を実現する;
スレッド グループ間で値を渡す;

パフォーマンス テスト中は、オリジナルの Beanshell を使用しないでください。パフォーマンスが良くないためです。追加のスクリプトが必要な場合は、Beanshell の代わりに JSR223 を使用することをお勧めします。

JSR223

JSR223 の使い方は Beanshell と同じなので、これ以上の紹介はせず、いくつか例を簡単に紹介します. また、
JSR223 と Beanshell は jmeter 上の変数を直接参照でき、参照方法も ${} です.

Redis から確認コードを取得します。

import redis.clients.jedis.Jedis;

Jedis jedis = new Jedis("redis地址", 6379); // redis默认端口是6379
jedis.auth("密码");
String key = String.format("redis上的key")   
String value = jedis.get(key);
vars.put("ver",value)
以下は、私がコンパイルした2023年の最も完全なソフトウェアテストエンジニア学習知識アーキテクチャシステム図です。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

八、JMeterの性能テスト

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

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

人生には常に風雨がありますが、後退することはできません。心に希望を持ち、たゆまぬ努力を続ければ、自分を超え、自分だけの美しい未来を創ることができます!

明日どんな驚きがあなたをもたらすか分からないので、簡単にあきらめないでください。夢を持ち続ける者はいずれ成功する、それは時間の問題だ。時間を大切に、チャンスを掴み、成長し続ける自分になろう!

心に夢がある限り、もがくのをやめないでください。困難は一時的なものですが、成功は永遠です。あなたは人生の道で転ぶかもしれませんが、立ち上がることを固執することによってのみ、あなたは栄光に行くことができます.

おすすめ

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