ネットワーク全体で人気のJmeterインターフェーステストとJmeterパフォーマンステストを詳しく解説(超詳細)


序文

Jmeterインターフェーステスト

1. テスト タスクの作成
スレッド グループを追加し、テスト プランを右クリックして、ショートカット メニューの [追加] - [スレッド (ユーザー)] - [スレッド グループ] をクリックします。スレッド グループの設定には主に、スレッド数、ランプアップ、サイクル数の 3 つのパラメータが含まれます。

D1

スレッド数: 仮想ユーザーの数を設定します。仮想ユーザーはプロセスまたはスレッドを占有します。スレッドの数は仮想ユーザーの数に相当します。

ランプアップ: 設定された数のスレッドの起動時間 (秒単位)。スレッド数が 100 で準備時間が 20 秒の場合、100 個のスレッドを開始するのに 20 秒かかり、1 秒あたり平均 5 つのスレッドが開始されます。

ループ数: 各スレッドによって送信されたリクエストの数。スレッド数が 100、ループ数が 2 の場合、各スレッドは 2 つのリクエストを送信し、リクエストの総数は 100*2=200 回になります。

「永久」チェックボックスをオンにすると、ツールバーの停止ボタンが手動でクリックされるか、設定されたスレッド実行時間が終了するまで、すべてのスレッドがループでリクエストを送信します。

今回のインターフェーステストではデフォルト値は1です。

2. get の HTTP リクエストを追加します
。 回線グループを右クリックし、ショートカット メニューの [追加]-[サンプラー]-[HTTP リクエスト]をクリックします。

D2

プロトコル: HTTP リクエストをターゲット サーバーに送信するときのプロトコル。HTTP または HTTPS を指定できます。未入力の場合、デフォルトは HTTP です。

サーバー IP とポート: ターゲット サーバーのアドレスとポート番号を入力します。
コンテンツエンコーディング:デフォルト値はiso8859です。
メソッド:リクエストメソッドを選択します
。 パス:リクエストのターゲットアドレスを入力します
。 パラメータ:クエリのパラメータ値を入力します。

3.
ポスト HTTP リクエストの追加方法は上記と同じですが、リクエスト方法が異なり、今回はサーバーへのパラメータと POST リクエストの URL アドレスの転送に POST を使用します。

D3

開発者が提供するインターフェイスドキュメントに従って、受信パラメータオプションを参照して入力します。

4. アサーションの追加
会議クエリ情報を右クリックし、会議情報をそれぞれ追加します。追加-「アサーション-」応答アサーション
今回は、応答テキストを選択し、照合する必要があるデータを入力します。

D4

5. 結果ツリーを追加して表示します。
リリース システム プロジェクトを右クリックし、[追加]-[リスナー-] をクリックします。以下を実行した後、結果ツリーを表示します。

D5

成功の場合は緑色のマークが表示され、失敗の場合は赤色のマークが表示され、各ユースケースで返されたデータを確認できます。

6. 結果を表示するためのテーブルを追加します。

D6

時間のかかるバイト サイズ、結果のステータス、ユースケース情報をより詳細に表示できます。

Jmeterのパフォーマンステスト

JMeter は記録を十分にサポートしていないため、現在一般的な方法は、Badboy を使用して記録し、JMeter スクリプトを生成し、それを JMeter で開き、結果を表示するリスナーを追加することです。

ソフトウェア アイコンをダブルクリックして badboy を開くと、次のインターフェイスが表示されます。

D7

1. 記録を開始する
アドレスバー(図の赤枠部分)に記録したいWebアプリケーションのURLを入力し、赤点ボタンをクリックすると記録が開始されます。

記録が開始されると、Badboy の内蔵ブラウザ (メイン インターフェイスの右側) でテスト対象の Web アプリケーションを直接操作でき、すべての操作がメイン インターフェイスの左側にある編集ウィンドウに記録されます。下の図

D8

スクリプトを jmeter としてエクスポート

D9

スレッドの数はリクエストを送信するユーザーの数を表し、ランプアップ期間 (秒単位) は各リクエストが発生する合計時間間隔を秒単位で表します。リクエストの数が 5 で、ランプアップ期間 (秒) パラメーターが 10 の場合、各リクエスト間の間隔は 10/5、つまり 2 秒になります。

ランプアップ期間 (秒) が 0 に設定されている場合、それは同時リクエストを意味します。

最後に、サイクル数を「永久」にするチェックボックスをオフにして、1 を入力します。この値は、テストを何回繰り返すかを JMeter に指示します。1 を入力すると、JMeter はテストを 1 回だけ実行します。テスト計画を継続的に実行するには、「永久」チェックボックスを選択します。

次の図に示すように、ログイン テストを実行する同時ユーザー数 1000 をシミュレートします。

D10

2. モニタリングの追加
これは主にテスト結果を表示するために使用され、さまざまな形式で表示できます。

以下にリスナーを追加する例を示します。次の図に示すように、テーブルでの結果の表示、集計レポート、およびグラフィカル レポートのスレッド「グループ」->「追加」->「リスナー」->「集計レポート」(グラフィカル レポート、テーブルでの結果の表示)。

D11

プログラムの実行後、対応するテスト結果を表示できます。ここでは、1000 スレッド グループの瞬間的な同時実行性を例として、次のレポートが取得されます。

D12

上の表のパラメータの意味は次のとおりです。

サンプル数は、サーバーに送信されたリクエストの合計数です。
最新のサンプルは、サーバーが最後のリクエストに応答した時間を表す数値です。
スループットは、サーバーが 1 分間に処理するリクエストの数です。
平均は、合計経過時間をサーバーに送信されたリクエストの数で割ったものです。
中央値は、サーバーの半数がそれ未満で応答し、残りのサーバーが応答した時間を表す数値です。
スキューは、サーバーの応答時間の変動、分散の程度、つまりデータの分布を表します。

1000人が同時並行した場合、平均応答時間は1630ミリ秒、スループットは3,940.887/分、平均応答中央値は230ミリ秒であることがわかります。

D13

グラフの意味は次のように説明されています。
ラベル: Http、FTP、その他のリクエストなどのリクエスト タイプを示します。
#Samples: つまり、グラフィカル レポート内のサンプルの数と、サーバーに送信されたサンプルの合計数です。
平均: つまり、グラフィック レポートの平均応答時間。合計実行時間をサーバーに送信されたリクエストの数で割ったものです。

中央値: つまり、グラフィカル レポートのユーザー応答時間の 50% の中央値で、サーバー応答時間の半分はこの値より低く、残りの半分はこの値より高くなります。
90% ライン:90% のリクエストの応答時間が、取得した値、つまり 90% のユーザーの応答時間より小さいことを意味します。

Min: 時間を表す数値であり、サーバーが応答するまでの最小時間です。
最大: サーバーが応答するまでの最大時間を表す数値です。
Error%: リクエストのエラーの割合。このテストでエラーが発生したリクエストの数/リクエストの合計数。
スループット: つまり、グラフィカル レポートのスループットです。ここでは、単位時間あたりにサーバーによって処理されるリクエストの数を示します。秒か分かに注意してください。デフォルトでは、1 秒あたりに完了したリクエストの数を意味します。

KB/秒: 1 秒あたりにサーバーから受信したデータの量。

正しいデータを取得するには、集計されたレポートのエラー% が 0.00% である必要があります。そうでない場合は、すべてのユーザーがテストに合格していないことを意味します。ここでは、平均応答時間は 1630 ミリ秒、平均応答の中央値は 230 ミリ秒です。

上図のエラーはエラーが発生しており、取得したデータは正確ではありませんが、ログとテーブルによれば、途中の処理で接続リクエストがタイムアウトし、受信リクエスト数に対する応答時間が時間内で0となっています。反応時間。

以下に示すように:

Q14

D16

テスト中、平均応答時間、スループット、同時接続数はパフォーマンス テストの重要な尺度ですが、テスト中、特に集計レポートでは、得られた 90% ラインは提案された 90% ラインと同等です。ユーザーによる%応答時間。この値は、パフォーマンス テスト分析でも大きな参考値となります。

90% の応答時間は、送信されたリクエストのうち、ユーザーの応答時間の 90% が取得された値より短いことを意味し、システムの使用中にユーザーの応答時間の 90% がこの値に到達できることも示します。システムのパフォーマンス分析に適した参考値を提供します。

スレッド数を同時接続要求数 500 に変更しても、エラーは発生せず、正確なパフォーマンス テスト データが取得されます。

D15

つまり、比較データを継続的に最適化し、最適な状態に近づけ、同時負荷数を決定する必要があります。

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

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

画像の説明を追加してください

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

画像の説明を追加してください

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

画像の説明を追加してください

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

画像の説明を追加してください

5. 一流メーカーの再開

画像の説明を追加してください

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

画像の説明を追加してください

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

画像の説明を追加してください

8、JMeterのパフォーマンステスト

画像の説明を追加してください

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

前線がどれほど困難で危険であっても、私たちは勇気と決意を持って旅に出なければなりません。闘争は単なる状態ではなく、信念でもあり、忍耐と前進によってのみ、人生の舞台に輝かしい章を作り、自分自身の伝説を達成することができます。

あらゆる努力は私の運命を変えるチャンスであり、たとえ前途がどれほど険しいものであっても、粘り強さと献身は必ず報われると私は強く信じています。自分の能力を信じ、限界に果敢に挑戦し、勇気と知恵で自分だけの輝かしい章を書き、限りない夢の花を咲かせましょう。

艱難を恐れず荊棘を乗り越え、決戦の場で輝きを綴る。闘争は夢に満ちた旅であり、最善を尽くすことによってのみ、自分を超え、人生の曲がりくねった道を突破することができます。粘り強く、熱意を追い求め、自分だけの多彩なステージを創造し、心の中に無限の光を実現するために努力してください。

おすすめ

転載: blog.csdn.net/csdnchengxi/article/details/132167931