专业的编程技术博客社区

网站首页 > 博客文章 正文

性能测试工具介绍1 -- Jmeter和nmon的使用

baijin 2024-10-19 02:39:16 博客文章 6 ℃ 0 评论

分享目标

一、完成Jmeter工具安装,介绍,脚本录制,并发控制设置,过程监控,测试结果报告展示,常用被测系统结果监控方式等。

二、nmon工具的使用,记录监控数据,监控结果分析。

一、Jmeter工具的使用

Jmeter工具的下载安装

进入下载页面 http://jmeter.apache.org/download_jmeter.cgi


1.1、Jmeter工具的解压及安装


1.2、Jmeter工具插件下载

下载网址 https://jmeter-plugins.org/downloads/all/

1.3、Jmeter工具插件安装

把下载的jmeter-plugins-manager-0.13.jar的包放在apache-jmeter-3.2\lib\ext的目录下


1.4、Jmeter工具插件安装-2

选项->Plugins Manager


1.5、Jmeter工具插件安装-3


2、Jmeter的使用一例-录制Web界面脚本

编辑->添加->Threads->线程组


2.1、Jmeter的使用一例-录制Web界面脚本-2

线程组->添加->Sampler>HTTP请求


2.2、Jmeter的使用一例-录制Web界面脚本-3

工作台->添加->非测试原件->HTTP代理服务器


2.3、Jmeter的使用一例-录制Web界面脚本-4

HTTP代理服务器->目标控制器->选择“测试计划>线程组”



2.4、Jmeter的使用一例-录制Web界面脚本-5

IE浏览器->Internet选项->连接-局域网设置



2.5、Jmeter的使用一例-录制Web界面脚本-6

代理服务器->为LAN使用代理服务器->地址->127.0.0.1 端口8888


2.6、Jmeter的使用一例-录制Web界面脚本-7

代理服务器->点击“启动”


2.7、Jmeter的使用一例-录制Web界面脚本-8

在浏览器中输入网址,例如www.163.com 可以发现已经捕获到了HTTP的请求


3、Jmeter的使用一例-分析录制的脚本

捕获的HTTP请求中有的是www.163.com 相关的请求,有的不是,需要判断。

判断方法:直接看URL。下图是163.com的后缀


3.1、Jmeter的使用一例-分析录制的脚本-2

判断方法:直接看URL。下图是qq.com的后缀


3.2、Jmeter的使用一例-分析录制的脚本-3

删除掉不需要的内容,与测试目标不相关的url 的HTTP请求

增加聚合报告,用于总览回放时的各HTTP请求情况列表

线程组->添加->监听器->“聚合报告”

增加察看结果树,用于察看详细的请求和返回数据

线程组->添加->监听器->“察看结果树”

增加HTTP Cookie管理器,用于保存cookie

线程组-> 添加 ->配置元件->HTTP Cookie管理器

4、Jmeter的使用一例-脚本调试

点击“启动”按钮,开始回放

记住,首先要关闭HTTP 代理服务器的录制状态,恢复在IE浏览器中的设置


4.1、Jmeter的使用一例-脚本调试-2

“察看结果树”中的内容,重点察看“请求”和“响应数据”的消息。

红色代表消息响应失败,绿色表示成功


4.2、Jmeter的使用一例-脚本调试-3

以第一个“HTTP请求”失败为例,失败的原因值是“请求为空”


响应数据提供了消息错误类型


4.3、Jmeter的使用一例-脚本调试-4

以图中最后一个“752/data…”消息成功为例,可以观察到请求为GET类型以及带的值


其“响应数据” 提供了服务器的返回响应消息数据


4.4、Jmeter的使用一例-脚本调试-5

检查 URL 路径是否正确,

另外如果是手工编写脚本,需要注意HTTP信息头的设置


5、Jmeter的使用一例-性能统计

聚合报告部分截图


Error%字段表示失败率,如果100%,需要检查Label中的请求消息是否正确

Samples字段表示该请求发送的次数

Average字段表示平均响应时间,单位为毫秒

Throughput字段表示吞吐量

Received/Sent 表示接收和发送数据的网络流量

5.1、Jmeter的使用一例-性能统计-2

聚合报告部分截图-2(单次请求)


总体Label,完成了对多次请求/响应消息的统计

6、Jmeter的使用一例-多线程设置

多线程设置:设置线程数;每线程执行次数:设置循环次数


7、Jmeter的使用一例-多线程的性能统计

多线程执行结果:

发送HTTP的消息数=设置线程数 * 每线程设置循环发送消息的次数

每个HTTP消息发送了6*6=36次,总体5个HTTP Label,共180个请求消息


8、性能分析一例-响应时间

选取一个qq相关的接口为例


8.1、性能分析一例-响应时间-2

增加一个“ jp@gc - Response Times Over Time”,可以生成响应时间随测试测试时间变化的图表。


8.2、性能分析一例-响应时间-3

先跑一下单线程,会出现多种颜色的Row Name(也就是每个请求的名称)

选取需要的Row,即是这里选取的 “748 /newtab/kw_query_batch_new”接口



8.3、性能分析一例-响应时间-4

模拟真实环境,在多接口同时测试的情况下,连续发送请求,以测试对应接口响应时间

这里需要排除预热的第一个消息响应时间,间隔了25秒再发消息,从第25秒钟开始观察


9、性能分析一例-性能瓶颈

测试计划->添加 ->Threads -> jp@gc - Stepping Thread Group


9.1、性能分析一例-性能瓶颈-2

并发数可以逐步递增的线程组


9.2、性能分析一例-性能瓶颈-3

并发数与响应时间的曲线分析:从0到1000逐步递增的并发数,响应时间成线性分布

结论:在1000并发数下该QQ浏览器/newtab/kw_query_batch_new接口未达到性能瓶颈


9.3、性能分析一例-性能瓶颈-4

并发数与资源利用率,吞吐量,响应时间的曲线分析:


10、Jmeter在linux环境中的使用-配置远程机

apache-jmeter-3.2\bin下修改jmeter.properties属性,控制远程压测负载生成的设备启动测试


10.1、配置远程机-2

常用命令:

Jmeter在远程压力负载生成机启动的命令:

./jmeter-server -Djava.rmi.server.hostname=10.200.130.3

在Linux服务器上启动远程机命令(也可以启动本机):

./jmeter -n -t 2.jmx -R 10.200.130.3:1099 -l ./tmp/log2.jtl -j ./tmp/log2.log -e -o ./tmp/result2

10.2、察看打印日志


20.5/s:表示每秒钟处理20.5个请求消息

Active:10 :表示当前激活的线程数

二、nmon工具的使用

nmon是服务器端性能监控工具

用于搜集服务器端CPU、内存、I/O、网络、硬盘的使用情况数据

nmon_x86_64_centos6 是执行监控和数据采集的程序

test-2_180517_1334.nmon 是某个服务器生成的执行结果

nmon_analyser_v51_2.xlsm 是解析nmon执行结果的脚本文件


nmon的实时监控功能

./nmon_x86_64_centos6



nmon的性能指标采集功能

使用命令:./nmon_x86_64_centos6 -f -t -s 10 -c 360

-f 生成文件

-t 包含进程信息

-s 采集的时间间隔 10秒

-c 采集信息的周期数 360次

该命令采集10秒*360次=总共采集3600秒即1个小时的信息,采集粒度为10秒

nmon的性能指标采集功能

使用分析工具nmon_analyser_v51_2.xlsm,把生成 *.nmon 文件解析成xlsx文件


nmon工具分析服务器性能指标



感谢你的支持!

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表