目次
1. JMeter の概要
Apache JMeter は、純粋な Java で書かれた負荷関数テストとパフォーマンス テストのためのオープンソース ツール ソフトウェアです。Loadrunner に比べて、JMeter は小型、軽量、無料であるため、徐々に主流のパフォーマンス テスト ツールとなり、すべてのテスターが習得しなければならないツールの 1 つです。
この記事は、Jmeter のダウンロードとインストールから完全なパフォーマンス テスト スクリプトの作成、最終的にパフォーマンス テストの実行とパフォーマンス テスト結果の分析まで、JMeter パフォーマンス テストの完全な紹介です。
動作環境はWindows 10、JDKバージョンは1.8、JMeterバージョンは3.3です。
2.Jmeterのインストール
2.1 JDKのインストール
Jmeter は Java に基づいて開発されているため、最初に JDK をダウンロードしてインストールする必要があります (現在、JMeter は Java 8 のみをサポートしており、Java 9 はまだサポートしていません)。
1.公式サイトのダウンロードアドレス:
2. Java SE 8u151/8u152を選択し、「JDK」をクリックしてダウンロードします。
3. ダウンロードしたJDKをインストールします。
4. システム環境変数を設定する
2.2 JMeterのインストール
1.公式サイトのダウンロードアドレス:
2. 最新の JMeter 3.3 バージョンをダウンロードします: apache-jmeter-3.3.zip
3. ダウンロードが完了したら、zip パッケージを解凍します。
4. JMeter を起動します
JMeter 解凍パス (apache-jmeter-3.3\bin) bin の下にある jmeter.bat をダブルクリックします。
3. テストケース
最も一般的な Baidu 検索インターフェイスを選択します。
3.1 インターフェースアドレス
http://www.baidu.com/s?ie=utf-8&wd=jmeter パフォーマンス テスト
3.2 リクエストパラメータ
例: エンコード方式、デフォルトは utf-8
wd: 検索ワード
3.3 結果を返す
検索結果に検索ワード wd が含まれているかどうかを確認することで、このリクエストの成功または失敗を判断できます。
4. JMeter スクリプト
4.1 スレッドグループの追加
「テスト計画」を右クリック→「追加」→「スレッド(ユーザー)」→「スレッドグループ」
ここでは、スレッド グループ名、スレッド数、ランプアップ期間 (秒単位) サイクル タイム、スケジューラ、およびその他のパラメータを構成できます。
スレッドグループパラメータの詳細な説明:
1. スレッド数: 仮想ユーザーの数。仮想ユーザーはプロセスまたはスレッドを占有します。ここで設定される仮想ユーザーの数は、設定されるスレッドの数でもあります。
2. ランプアップ期間 (秒単位) 準備時間: 設定された数の仮想ユーザーが起動するまでにかかる時間。スレッド数が 10 で準備時間が 2 の場合、10 スレッドを開始するには 2 秒かかります。つまり、1 秒あたり 5 スレッドになります。
3. ループ数: 各スレッドがリクエストを送信した回数。スレッド数が 10 でループ数が 100 の場合、各スレッドは 100 個のリクエストを送信します。リクエストの合計数は 10*100=1000 です。「Forever」がチェックされている場合、すべてのスレッドは常にリクエストを送信し、選択されるとスクリプトの実行を停止します。
4. 必要になるまでスレッドの作成を遅らせる: 必要になるまでスレッドの作成を遅らせます。
5. スケジューラー: スレッドグループの起動の開始時刻と終了時刻を設定します (スケジューラーを構成する場合、サイクル数が永久であることを確認する必要があります)
期間 (秒): テスト期間。終了時刻は上書きされます。
起動遅延 (秒): テストにより起動時間が遅延され、起動時間が上書きされます。
起動時間: 起動時間をテストします。起動遅延はそれを上書きします。起動時間が経過すると、手動で単純にテストする場合も、現在の時間が上書きされます。
終了時間: テストの終了時間。期間はそれを上書きします。
インターフェイスのデバッグが必要なため、当面はデフォルト設定を使用し、後で実際にパフォーマンス テストを実行するときに設定に戻ります。
4.2 HTTPリクエストの追加
「スレッドグループ」を右クリック→「追加」→「サンプラー」→「HTTPリクエスト」
インターフェイス http://www.baidu.com/s?ie=utf-8&wd=jmeter のパフォーマンス テストについては、次の図を参照して記入してください。
Http リクエストの主なパラメータの詳細な説明:
1. Webサーバー
プロトコル: HTTP リクエスト プロトコルをターゲット サーバーに送信します。HTTP または HTTPS を使用できます。デフォルトは HTTP です。
サーバー名またはIP: HTTPリクエストによって送信されたターゲットサーバー名またはIP
ポート番号: ターゲットサーバーのポート番号、デフォルト値は80です。
2.HTTPリクエスト
メソッド: HTTP リクエストの送信方法。使用可能なメソッドには、GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE などが含まれます。
パス: ターゲット URL パス (URL からサーバー アドレス、ポート、パラメーターを削除した後の残りの部分)
コンテンツのエンコーディング: エンコーディング方法、デフォルトは ISO-8859-1 エンコーディング、ここでは utf-8 として構成されています
3. リクエストとともにパラメータを送信します
リクエストで送信される URL パラメータについて、ユーザーはこのテーブルの URL 内のすべてのパラメータを設定できます。テーブルの各行にはパラメータ (URL の name=value に対応) があります。「エンコーディング」には次のパラメータが必要であることに注意してください。パラメータが中国語に渡されるときにチェックされる
4.3 ビュー結果ツリーの追加
「スレッドグループ」を右クリック→「追加」→「リスナー」→「結果ツリーの表示」
このとき、HTTPリクエストを実行し、レスポンスのデータ形式を「HTML Source Formatted」に変更すると、検索結果ページのタイトルが「jmeter Performance test_Baidu search」となっていることがわかります。
4.4 ユーザー定義変数の追加
HTTP リクエストのパラメータ化にユーザー定義変数を追加するには、「スレッド グループ」を右クリックし、「追加」→「構成コンポーネント」→「ユーザー定義変数」を選択します。
パラメータ wd を追加して検索語を保存します。
このパラメータを HTTP リクエストで使用します。形式は ${wd} です。
4.5 アサーションの追加
「HTTPリクエスト」を右クリック→「追加」→「アサーション」→「レスポンス・アサーション」
テスト対象のパターンにパラメーター ${wd} を追加して、返されたテキストに検索語が含まれているかどうかを確認します。
4.6 アサーション結果の追加
「HTTPリクエスト」を右クリック→「追加」→「リスナー」→「アサーション結果」
このとき、再度実行することでアサーションの結果が成功したか失敗したかを確認できます。
4.7 集計レポートの追加
「スレッドグループ」を右クリック→「追加」→「リスナー」→「集計レポート」を選択し、パフォーマンステストレポートを保存します。
このようにして、完全な Http インターフェイスの JMeter パフォーマンス テスト スクリプトの作成が完了しました。
5. パフォーマンステストを実行する
5.1 スレッドグループの設定
スレッド グループをクリックして、このパフォーマンス テストの関連パラメータ (スレッド数、サイクル数、期間など) を設定します。ここでは、同時ユーザー数を 10 に、期間を 60 秒に設定します。
5.2 テストの実行
小さな緑色の矢印ボタンをクリックしてテストを開始します。テストの前に、小さなほうきボタンをクリックして以前のデバッグ結果をクリアする必要があります。
6. 分析試験報告書
パフォーマンス テストの実行後、集計レポートを開くと、次の内容が表示されます。
集計レポートパラメータの詳細な説明:
1. ラベル: 各 JMeter 要素 (HTTP リクエストなど) には Name 属性があり、Name 属性の値がここに表示されます。
2. #Samples: リクエストの数 - このテストで送信されたリクエストの総数を示します。10 人のユーザーがシミュレートされ、各ユーザーが 10 回反復する場合、ここには 100 が表示されます
3. Average: 平均応答時間 - デフォルトでは、単一リクエストの平均応答時間です。トランザクション コントローラーが使用されている場合、平均応答時間はトランザクション単位で表示されます。
4. 中央値: 中央値、ユーザーの 50% の応答時間です。
5. 90% ライン: ユーザーの 90% の応答時間
6. Min: 最小応答時間
7. 最大: 最大応答時間
8. Error%: エラー率 - 間違ったリクエストの数/リクエストの総数
9. スループット: スループット - デフォルトでは、1 秒あたりに完了したリクエストの数 (1 秒あたりのリクエスト) を示します。トランザクション コントローラーを使用する場合は、LoadRunner と同様に 1 秒あたりのトランザクションの数を示すこともできます。
10. KB/秒: 1 秒あたりにサーバーから受信したデータ量。LoadRunner のスループット/秒に相当します。
一般的に、パフォーマンス テストで注目する必要があるデータは、サンプル リクエスト数、平均平均応答時間、最小最小応答時間、最大最大応答時間、Error% エラー率、およびスループット スループットです。
7. ソースコードのダウンロード
これまで、JMeter を使用して、スクリプトの作成から実行、最終結果の分析まで、完全な Http インターフェイスのパフォーマンス テスト プロセスを完了してきました。