内容:ガイド
序文
Jmeterインターフェーステスト
1. テスト タスクの作成
スレッド グループを追加し、テスト プランを右クリックして、ショートカット メニューの [追加] - [スレッド (ユーザー)] - [スレッド グループ] をクリックします。スレッド グループの設定には主に、スレッド数、ランプアップ、サイクル数の 3 つのパラメータが含まれます。
スレッド数: 仮想ユーザーの数を設定します。仮想ユーザーはプロセスまたはスレッドを占有します。スレッドの数は仮想ユーザーの数に相当します。
ランプアップ: 設定された数のスレッドの起動時間 (秒単位)。スレッド数が 100 で準備時間が 20 秒の場合、100 個のスレッドを開始するのに 20 秒かかり、1 秒あたり平均 5 つのスレッドが開始されます。
ループ数: 各スレッドによって送信されたリクエストの数。スレッド数が 100、ループ数が 2 の場合、各スレッドは 2 つのリクエストを送信し、リクエストの総数は 100*2=200 回になります。
「永久」チェックボックスをオンにすると、ツールバーの停止ボタンが手動でクリックされるか、設定されたスレッド実行時間が終了するまで、すべてのスレッドがループでリクエストを送信します。
今回のインターフェーステストではデフォルト値は1です。
2. get の HTTP リクエストを追加します
。 回線グループを右クリックし、ショートカット メニューの [追加]-[サンプラー]-[HTTP リクエスト]をクリックします。
プロトコル: HTTP リクエストをターゲット サーバーに送信するときのプロトコル。HTTP または HTTPS を指定できます。未入力の場合、デフォルトは HTTP です。
サーバー IP とポート: ターゲット サーバーのアドレスとポート番号を入力します。
コンテンツエンコーディング:デフォルト値はiso8859です。
メソッド:リクエストメソッドを選択します
。 パス:リクエストのターゲットアドレスを入力します
。 パラメータ:クエリのパラメータ値を入力します。
3.
ポスト HTTP リクエストの追加方法は上記と同じですが、リクエスト方法が異なり、今回はサーバーへのパラメータと POST リクエストの URL アドレスの転送に POST を使用します。
開発者が提供するインターフェイスドキュメントに従って、受信パラメータオプションを参照して入力します。
4. アサーションの追加
会議クエリ情報を右クリックし、会議情報をそれぞれ追加します。追加-「アサーション-」応答アサーション
今回は、応答テキストを選択し、照合する必要があるデータを入力します。
5. 結果ツリーを追加して表示します。
リリース システム プロジェクトを右クリックし、[追加]-[リスナー-] をクリックします。以下を実行した後、結果ツリーを表示します。
成功の場合は緑色のマークが表示され、失敗の場合は赤色のマークが表示され、各ユースケースで返されたデータを確認できます。
6. 結果を表示するためのテーブルを追加します。
時間のかかるバイト サイズ、結果のステータス、ユースケース情報をより詳細に表示できます。
Jmeterのパフォーマンステスト
JMeter は記録を十分にサポートしていないため、現在一般的な方法は、Badboy を使用して記録し、JMeter スクリプトを生成し、それを JMeter で開き、結果を表示するリスナーを追加することです。
ソフトウェア アイコンをダブルクリックして badboy を開くと、次のインターフェイスが表示されます。
1. 記録を開始する
アドレスバー(図の赤枠部分)に記録したいWebアプリケーションのURLを入力し、赤点ボタンをクリックすると記録が開始されます。
記録が開始されると、Badboy の内蔵ブラウザ (メイン インターフェイスの右側) でテスト対象の Web アプリケーションを直接操作でき、すべての操作がメイン インターフェイスの左側にある編集ウィンドウに記録されます。下の図
スクリプトを jmeter としてエクスポート
スレッドの数はリクエストを送信するユーザーの数を表し、ランプアップ期間 (秒単位) は各リクエストが発生する合計時間間隔を秒単位で表します。リクエストの数が 5 で、ランプアップ期間 (秒) パラメーターが 10 の場合、各リクエスト間の間隔は 10/5、つまり 2 秒になります。
ランプアップ期間 (秒) が 0 に設定されている場合、それは同時リクエストを意味します。
最後に、サイクル数を「永久」にするチェックボックスをオフにして、1 を入力します。この値は、テストを何回繰り返すかを JMeter に指示します。1 を入力すると、JMeter はテストを 1 回だけ実行します。テスト計画を継続的に実行するには、「永久」チェックボックスを選択します。
次の図に示すように、ログイン テストを実行する同時ユーザー数 1000 をシミュレートします。
2. モニタリングの追加
これは主にテスト結果を表示するために使用され、さまざまな形式で表示できます。
以下にリスナーを追加する例を示します。次の図に示すように、テーブルでの結果の表示、集計レポート、およびグラフィカル レポートのスレッド「グループ」->「追加」->「リスナー」->「集計レポート」(グラフィカル レポート、テーブルでの結果の表示)。
プログラムの実行後、対応するテスト結果を表示できます。ここでは、1000 スレッド グループの瞬間的な同時実行性を例として、次のレポートが取得されます。
上の表のパラメータの意味は次のとおりです。
サンプル数は、サーバーに送信されたリクエストの合計数です。
最新のサンプルは、サーバーが最後のリクエストに応答した時間を表す数値です。
スループットは、サーバーが 1 分間に処理するリクエストの数です。
平均は、合計経過時間をサーバーに送信されたリクエストの数で割ったものです。
中央値は、サーバーの半数がそれ未満で応答し、残りのサーバーが応答した時間を表す数値です。
スキューは、サーバーの応答時間の変動、分散の程度、つまりデータの分布を表します。
1000人が同時並行した場合、平均応答時間は1630ミリ秒、スループットは3,940.887/分、平均応答中央値は230ミリ秒であることがわかります。
グラフの意味は次のように説明されています。
ラベル: Http、FTP、その他のリクエストなどのリクエスト タイプを示します。
#Samples: つまり、グラフィカル レポート内のサンプルの数と、サーバーに送信されたサンプルの合計数です。
平均: つまり、グラフィック レポートの平均応答時間。合計実行時間をサーバーに送信されたリクエストの数で割ったものです。
中央値: つまり、グラフィカル レポートのユーザー応答時間の 50% の中央値で、サーバー応答時間の半分はこの値より低く、残りの半分はこの値より高くなります。
90% ライン:90% のリクエストの応答時間が、取得した値、つまり 90% のユーザーの応答時間より小さいことを意味します。
Min: 時間を表す数値であり、サーバーが応答するまでの最小時間です。
最大: サーバーが応答するまでの最大時間を表す数値です。
Error%: リクエストのエラーの割合。このテストでエラーが発生したリクエストの数/リクエストの合計数。
スループット: つまり、グラフィカル レポートのスループットです。ここでは、単位時間あたりにサーバーによって処理されるリクエストの数を示します。秒か分かに注意してください。デフォルトでは、1 秒あたりに完了したリクエストの数を意味します。
KB/秒: 1 秒あたりにサーバーから受信したデータの量。
正しいデータを取得するには、集計されたレポートのエラー% が 0.00% である必要があります。そうでない場合は、すべてのユーザーがテストに合格していないことを意味します。ここでは、平均応答時間は 1630 ミリ秒、平均応答の中央値は 230 ミリ秒です。
上図のエラーはエラーが発生しており、取得したデータは正確ではありませんが、ログとテーブルによれば、途中の処理で接続リクエストがタイムアウトし、受信リクエスト数に対する応答時間が時間内で0となっています。反応時間。
以下に示すように:
テスト中、平均応答時間、スループット、同時接続数はパフォーマンス テストの重要な尺度ですが、テスト中、特に集計レポートでは、得られた 90% ラインは提案された 90% ラインと同等です。ユーザーによる%応答時間。この値は、パフォーマンス テスト分析でも大きな参考値となります。
90% の応答時間は、送信されたリクエストのうち、ユーザーの応答時間の 90% が取得された値より短いことを意味し、システムの使用中にユーザーの応答時間の 90% がこの値に到達できることも示します。システムのパフォーマンス分析に適した参考値を提供します。
スレッド数を同時接続要求数 500 に変更しても、エラーは発生せず、正確なパフォーマンス テスト データが取得されます。
つまり、比較データを継続的に最適化し、最適な状態に近づけ、同時負荷数を決定する必要があります。
以下は、私がまとめた 2023 年の最も完全なソフトウェア テスト エンジニア学習知識アーキテクチャ システム図です。 |
1. Pythonプログラミングの入門から習得まで
2.インターフェース自動化プロジェクトの実戦
3. Web自動化プロジェクトの実戦
4. アプリ自動化プロジェクトの実戦
5. 一流メーカーの再開
6. DevOps システムのテストと開発
7. 一般的に使用される自動テストツール
8、JMeterのパフォーマンステスト
9. まとめ(最後にちょっとしたサプライズ)
前線がどれほど困難で危険であっても、私たちは勇気と決意を持って旅に出なければなりません。闘争は単なる状態ではなく、信念でもあり、忍耐と前進によってのみ、人生の舞台に輝かしい章を作り、自分自身の伝説を達成することができます。
あらゆる努力は私の運命を変えるチャンスであり、たとえ前途がどれほど険しいものであっても、粘り強さと献身は必ず報われると私は強く信じています。自分の能力を信じ、限界に果敢に挑戦し、勇気と知恵で自分だけの輝かしい章を書き、限りない夢の花を咲かせましょう。
艱難を恐れず荊棘を乗り越え、決戦の場で輝きを綴る。闘争は夢に満ちた旅であり、最善を尽くすことによってのみ、自分を超え、人生の曲がりくねった道を突破することができます。粘り強く、熱意を追い求め、自分だけの多彩なステージを創造し、心の中に無限の光を実現するために努力してください。