ApacheのJMeterは負荷テストや性能テストのための純粋なJavaのオープンソースソフトウェアです。最初のJMeterでnginxのドッカーを用いて容器アップこの記事プル、ストレステストのWebアプリケーションに設計されており、そのような措置の圧力を受けるストレステストプロセスに使用のJMeterを導入する簡単な例と方法。
環境の準備
アパッチのJMeterは、インストールの方法の概要は、以下を見つけることができます:
- https://liumiaocn.blog.csdn.net/article/details/101264380
ストレステストアプリケーション準備
使用ポートに8088は、例が下に示されている(他の方法でも使用することができる)ドッカーアプリケーションnginxのローカルマシンを起動します。
liumiaocn:~ liumiao$ docker images |grep nginx |grep latest
nginx latest e445ab08b2be 2 months ago 126MB
liumiaocn:~ liumiao$ docker run -p 8088:80 -d --name=nginx-test nginx:latest
a80fb1a4fc20627891a6bd7394fd79ae9aefb7dc8cf72c12967bc2673a815308
liumiaocn:~ liumiao$
- 1
- 2
- 3
- 4
- 5
curlコマンドを使用するか、または実行されているnginxのを確認するために、ブラウザに指示
liumiaocn:~ liumiao$ curl http://localhost:8088/
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
liumiaocn:~ liumiao$
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
準備の前提を確認するためにテストを準備するには、次の手順を実行します。
-
ステップ1:以下に示すように、テストプログラムに情報選択メニューをスレッドグループを追加します。
-
ステップ2:以下のようにスレッドグループ作成したばかりの、情報選択メニューのサンプラーのHTTPリクエストを追加します。
-
ステップ3:以下のようにメニュー情報を選択し、重合レポートを追加します。
-
ステップ4:保存テスト計画
/tmp/nginx-test.jmxとして結果のテスト計画を保存するには[保存]ボタンをクリックします -
ステップ5:ファイルページセットJTL重合レポート
セットおよび重合JTLのレポートページでファイルパスを書き込みます。/tmp/nginx-test.jtl
HTTPテスト
HTTP GET成功したテストを行うために、JMeterのHTTPサンプラーA GET HTTPで行わ:// localhostを:8088 /
テストのセットアップ
図に次のようにHTTPリクエストメッセージは次のように設定され、本実施形態におけるサービスとnginxの間の関連付けが設定されています。
設定項目 | 设定内容 |
---|---|
协议 | http |
服务器名称或者ip | localhost |
端口号 | 8088 |
HTT请求/方法 | GET |
HTTP请求/路径 | / |
详细设定如下图所示:
线程组设定
保持线程组信息为缺省设定即可,设定内容如下所示:
设定项 | 设定值 |
---|---|
线程数 | 1 |
循环次数 | 1 |
执行&聚合报告
点击绿色的启动按钮开始执行,然后点击聚合报告可以看聚合报告如下所示:
从nginx-test.jtl文件中也可以看到结果的详细信息,可以看到返回的结果200码,以及success字段的true的结果信息,说明这是一次成功的执行,另外在聚合报告中的异常%的结果是0也可以看出这一点。
liumiaocn:tmp liumiao$ cat nginx-test.jtl
timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
1569663931702,5,HTTP请求,200,OK,线程组 1-1,text,true,,850,118,1,1,http://localhost:8088/,5,0,3
liumiaocn:tmp liumiao$
- 1
- 2
- 3
- 4
接下来故意修改一下HTTP请求的端口号,改成错误的本地没有HTTP服务的端口号,比如8089,设定示例如下所示:
点击绿色的启动按钮开始执行,会提示一个Warning,因为在测试中修改设定,是否还是一个压力测试是需要使用者自己判断的,这里为了演示选择“添加到现有文件”
然后点击聚合报告可以看聚合报告如下所示:
从nginx-test.jtl文件中也可以看到结果的详细信息,Connection refused的错误信息,以及success字段的false的结果信息,说明这是一次失败的执行,另外在聚合报告中的异常%的结果也变成了50%(共计两次取样测试,上一次执行的结果成功,所以异常为50%)也可以看出这一点。
liumiaocn:tmp liumiao$ cat nginx-test.jtl
timeStamp,elapsed,label,responseCode,responseMessage,threadName,dataType,success,failureMessage,bytes,sentBytes,grpThreads,allThreads,URL,Latency,IdleTime,Connect
1569663931702,5,HTTP请求,200,OK,线程组 1-1,text,true,,850,118,1,1,http://localhost:8088/,5,0,3
1569664469242,2,HTTP请求,Non HTTP response code: org.apache.http.conn.HttpHostConnectException,"Non HTTP response message: Connect to localhost:8089 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused (Connection refused)",线程组 1-1,text,false,,2673,0,1,1,http://localhost:8089/,0,0,2
liumiaocn:tmp liumiao$
- 1
- 2
- 3
- 4
- 5
测试报告
- 使用如下命令生成测试报告
执行命令:bin/jmeter -g /tmp/nginx-test.jtl -e -o /tmp/nginx-test-rpt-1 -j /tmp/nginx-rpt.log
- 测试报告的概要信息如下所示:
重新将端口号修正为8080,保证HTTP测试能正确执行的基础之上,进行如下压力测试:并发用户数100、循环360次、持续时间180秒的内置HTTP请求验证
设定信息如下:
设定项 | 设定值 |
---|---|
线程数 | 100 |
循环次数 | 360 |
持续时间 | 180s |
実行を開始するには、緑色の[スタート]ボタンをクリックして、それはまだ「既存のファイルに追加」を選択証明するために、ここで、警告を促すメッセージが表示されます
見て、その後、集計レポート重合レポートをクリックすることができ、次の通りである:
あなたは100スレッドグループとして、サンプル36002の数を見ることができます* 360サイクル+既存の2つのテストの結果、そう内蔵ジャワ、nginxのデフォルトの設定を使用して、異常な速度での9.17パーセントに上昇している使用する以前の要求に比べて36002倍ストレステストサンプルの合計。
テストレポート
- テストレポートを生成するには、次のコマンドを使用します
ファイル名を指定して実行します。bin / JMeterの-g /tmp/nginx-test.jtl -e -oを/ tmp / nginxのテスト-RPT-2 -j /tmp/nginx-rpt.log
- 試験報告書の概要を以下に示します。