技術共有

jmeter 配布 (4)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1.グイ

jmeter の GUI は主にスクリプトのデバッグに使用されます

1. まずGUIを使用してスクリプトを作成します

まずスクリプトを作成する
デモ: 混合シーンのスクリプトを作成するには?
ビジネス比率 211 を使用

①データベースサービスを起動する

データベース サービス: mysql、redis を含む
mysqlポートのデフォルト3306

netstat -lntp | grep 3306
  • 1

リスニング状態では、6379 が Redis のデフォルトのポートです

netstat -lntp | grep 6379
  • 1

プロジェクトサービスポート18089

netstat -lntp | grep 18089
  • 1

②インターフェースドキュメントスワッガーへのアクセス

211 は 2 つのストレス テスト サービスに変換可能

1 つは登録する方法、もう 1 つは登録してログインして製品を追加する方法です。
どちらも50%です

③スレッドグループを追加

jmeter - スレッド グループの追加-add-thread-user-thread group

2 つのストレス テスト サービスを変換する

④スループットコントローラーの追加

jmeter - ロジックの追加コントローラー - スループット コントローラー

2 つのストレス テスト サービスを変換します。
最初のストレス テスト ビジネスには、登録、ログイン、製品の追加が含まれます
ストレステスト第2弾事業は登録です

ここに画像の説明を挿入します

それぞれ50%
ここに画像の説明を挿入します

⑤サンプラーhttpリクエストを追加

jmeter-add-sampler-http-request
2 つのストレス テスト サービスを変換する
ここに画像の説明を挿入します

最初のストレス テスト ビジネスには、登録、ログイン、製品の追加が含まれます

ここに画像の説明を挿入します

ここに画像の説明を挿入します

2つ目の業務は登録です

登録スワッガーに従って書き込み、パラメータを入力
ここに画像の説明を挿入します
通常、ID を挿入するときに ID を入力する必要はありません。
アドタイムも入力する必要はありません
パラメータデータをコピーして jmeter に貼り付けます
ここに画像の説明を挿入します

URLに基​​づくパス
ここに画像の説明を挿入します

ここに画像の説明を挿入します

ここに画像の説明を挿入します

⑥httpヘッダーマネージャーを追加、

それらはすべて json を渡します
ここに画像の説明を挿入します

ここに画像の説明を挿入します

⑦httpリクエストのデフォルト値を追加

インターフェイスのドキュメントに従って IP とポートを入力します。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

⑧リスナーを追加し、結果ツリーを表示する

ここに画像の説明を挿入します

⑨アサーションの追加

アサーションを追加するのが最善です

ここに画像の説明を挿入しますここに画像の説明を挿入します

2.ノンギ

-n非 GUI モードで jmeter を実行する
-t は、jmeter を実行するスクリプトの場所を指定します。フルパスを書き出す必要があります。
-l は、生成された結果ファイル (jtl ファイル) を指定します。
-e テスト完了後、テストレポートを生成します。
-o はテスト レポート HTML の保存場所を指定します。
-r リモートスタート

1. 単機プレス

①プレス応募

Linuxプレスにjdkとjmeterをインストールする
usr/local にインストールします
デバッグ スクリプトに関連するプラグインも利用できるため、ウィンドウ上の jmeter を Linux プレスに直接アップロードします。
ここに画像の説明を挿入します

②原稿をプレスにアップロード

注: スクリプトに csv パラメータ ファイルが含まれる場合は、csv パラメータ ファイルを Linux 上の jmeter の bin ディレクトリにアップロードする必要があります。
アップロードする前に、集計レポートとリスナーを無効にする必要があります

5 スレッド、30 秒ごとに 1 つ追加、つまり 150

この継続時間は、Rang up 時間の 150 より長くする必要があります。さらに 50 秒間実行する場合は、200 に設定します。
ここに画像の説明を挿入します

jmeter のアップロードに成功したら、jmeter のバージョンとそれが利用可能かどうかを確認します。

ここに画像の説明を挿入します

③初期化

2か所あります
まず、テスト スクリプトを保存するパスで、HTML レポートを保存するディレクトリを作成する必要があります。

ここに画像の説明を挿入します
スクリプトを実行する前に、res ディレクトリは空である必要があります
次に、既存のデータを考慮せずにデータベース テーブル内のデータをクリーンアップします。
ここに画像の説明を挿入します

④スクリプトを実行する

ここに画像の説明を挿入します

⑤結果を見る

結果
13 秒間で 548 件のリクエストを完了しました

ここに画像の説明を挿入します
ここに画像の説明を挿入します

集計レポートを開く
ko が失敗したリクエストの数

ここに画像の説明を挿入します
resopntime応答時間
ここに画像の説明を挿入します

tps

ここに画像の説明を挿入します

jtlファイルを表示するにはどうすればよいですか?
jtl は、結果ツリー、集計レポート、TPS、応答時間の表示など、任意のリスナーで開くことができます。
集計レポートで開いた場合は、「参照」をクリックします。
ここに画像の説明を挿入します

ここに画像の説明を挿入します
TPS、応答時間など
まずはtpsから見てみましょう
TPSの追加
クリックして参照

ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

ここに画像の説明を挿入します

反応時間ここに画像の説明を挿入します

ここに画像の説明を挿入します

2. 分散型

場合によっては、1 つのプレスだけでは目標を達成できない場合があり、分散したプレスが必要になります。
結局のところ、単一マシンのリソースは限られており、大規模な同時実行をサポートすることは困難です。また、単一マシンの印刷機にもボトルネックがあります。

2.1 分配原理

公式ウェブサイト:https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

サーバーマシンは制御マシンとして機能します
残りのマシンはロードマシンとして使用されます
ターゲットが要求したサービス
コントローラは負荷機械の起動・停止を信号送信により遠隔制御するとともに、負荷機械のデータやサマリーを収集します。
ロード マシンは主に、サーバーにアクセスするためのスレッドを開始し、ストレス テストの対象となるサーバーをターゲットにします。
通常、ワーカーは jmeter-server コントロール マシンを起動してロード マシンをリモート制御します。ロード マシンはスレッドを開始し、ターゲットにデータの取得を要求し、それをコントロール マシンに送り返します。

スクリプトは配布時にどこに配置されますか?
1 つのコントローラーで複数のワーカー
GUI以外を実行する場合、スクリプトはサーバーに送信されますが、スクリプトはどこに送信すればよいでしょうか。
スクリプトは、実行中に各ロード マシン、つまり各ワーカーに送信され、スクリプトを取得した後、スクリプトの実行が開始されます。要約のために制御マシンに送信します。

2.2 分布圧力試験の注意事項

(https://img-blog.csdnimg.cn/e3de7b8b65a1447db3bc3618876f62d3.png)
ファイアウォールを閉じる必要がある場合は、ポートを開く必要があります。
すべてのクライアントは同じサブネット上に存在する必要があります。
jmeter がサーバーにアクセスできることを確認してください
jmeterとjavaのバージョンが同じであることを確認してください
SSLを無効にする

2.3 環境の準備

3 つの仮想マシンが必要
181をController(制御機)として使用
182,183 をワーカー (ロードマシン) として使用
同時に、これら 3 つの仮想マシンに jdk と jmeter をインストールする必要があります。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します
JDKのバージョンを表示
ここに画像の説明を挿入します
3 つの仮想マシンに jmeter をインストールする
ローカル マシンの jmeter は、仮想マシンの usr/local ディレクトリに転送されます。
アップロード後にjmeterのバージョンを確認する
ここに画像の説明を挿入します

2.4 分散構成

①労働者

182、182
まず構成ファイル jmeter.properties をバックアップします。
ここに画像の説明を挿入します

server_port は変更することも、変更しないこともできます。デフォルト値は 1099 です。
ここに画像の説明を挿入します

SSLを無効にする
server.rmi.ssl.disable=false、falseをtrueに変更します
ここに画像の説明を挿入します

ジェムターを起動する
./jmeter-サーバー
ここに画像の説明を挿入します
ポート 182 をチェックして、リスニング状態かどうかを確認します。

ここに画像の説明を挿入します

確認する
コントロール マシンをロード マシンに Telnet して、ポートがアクセス可能かどうかを確認します。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

②コントローラー

制御マシンを設定する前に、ウィンドウ上の jmeter でデバッグを行います。
win: デバッグ用
まず構成ファイル jmeter.properties をバックアップします。
ここに画像の説明を挿入します
デフォルトでは、このマシンはロード マシンとして使用されます。
現在のロード マシンはリモート ロード マシンです。remote_hosts=127.0.0.1 を Remote_hosts=192.168.117.182:1099 に変更します。
リモートロードマシンのIPとポートをここに記述する必要があります。複数の場合はカンマで区切ります。
ここに画像の説明を挿入します
ここに画像の説明を挿入します
SSLを無効にする
server.rmi.ssl.disable=false を server.rmi.ssl.disable=true に変更します。
ここに画像の説明を挿入します

まずこのマシンでデバッグします
jmeterを再起動し、設定ファイルを再度読み取ります。
ここに画像の説明を挿入します
Windows でデバッグした後、Linux に移動して設定を行います。

181 で設定する
まず構成ファイル jmeter.properties をバックアップします。

ここに画像の説明を挿入します

現在のロード マシンはリモート ロード マシンであり、remote_hosts=127.0.0.1への変更remote_hosts=192.168.117.182:1099
リモートロードマシンのIPとポートをここに記述する必要があります。複数の場合はカンマで区切ります。

ここに画像の説明を挿入します

ここに画像の説明を挿入します

server.rmi.ssl.disable=false
意思server.rmi.ssl.disable=falseへの変更server.rmi.ssl.disable=true
ここに画像の説明を挿入します
スクリプトが制御マシンに送信されると、スクリプトは自動的に各負荷マシンに配信されます。
個別のテスト単一シナリオのログイン
ここに画像の説明を挿入します
スクリプトをアップロードしたら、スクリプトを実行します
リモートロードによる実行

/usr/local/apache-jmeter-5.1.1/bin/jmeter -n -r -t test.jmx
  • 1

ここに画像の説明を挿入します

各作業負荷マシン (プレス) には 5 つのスレッドがあり、合計制御マシンには 10 のスレッドがあります。
ここに画像の説明を挿入します

環境整備
2 つの仮想マシン。 1 つのマスターと 2 つのスレーブがあり、Windows マシンは 1 つのマスターとして機能し、スレーブは仮想マシンを使用します。
原理:https://jmeter.apache.org/usermanual/jmeter_distributed_testing_step_by_step.html

発生する問題:
java.rmi.RemoteException: 起動できません。localhost.localdomain はループバック アドレスです

作成されたリモートオブジェクト: UnicastServerRef2 [liveRef: [endpoint:127.0.0.1:43474,オブジェクトID:[-5a8dd143:17e2852fe88:-7fff, 3673082414768940798]]]
サーバーの起動に失敗しました: java.rmi.RemoteException: 起動できません。localhost.localdomain はループバック アドレスです。
エラーが発生しました: 開始できません。localhost.localdomain はループバック アドレスです。
ここに画像の説明を挿入します
例外情報: サーバー起動例外: Java リモート メソッド呼び出しで例外がスローされました: サービスを開始できません。 localhost.localdomain はローカル ループバック アドレスです

hostname コマンドで取得したホスト名は localhost です。
コマンド cat /etc/hosts を使用してホスト構成を確認します。 localhost localhost.localdomain localhost4... は 127.0.0.1 を指します。
ここに画像の説明を挿入します
解決:
リモートサーバーホストのIPアドレス(rmi.server.hostname)を指定します。
ターミナルコマンドを指定して開始します
./jmeter-server -Djava.rmi.server.hostname=192.168.2.2
ここに画像の説明を挿入しますここに画像の説明を挿入します