jmeter
文章目录
为了测试web应用程序性能而设计的,是一个100%的java应用程序
可以用于测试静态和动态性能
可以用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载下的情况
jmeter功能
能够加载和性能测试许多不同的应用程序/服务器/协议类型:
Web - HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, …)
SOAP / REST Webservices
断续器
通过 JDBC 的数据库
LDAP
通过 JMS 实现面向消息的中间件 (MOM)
邮件 - SMTP、POP3 和 IMAP
本机命令或外壳脚本
断续器
Java 对象
jmeter模式
CLI命令行模式和可视化GUI模式 下文提到的都是Windows下的GUI模式的使用
下载安装
需要先安装jdk8
参考
https://blog.csdn.net/u012906938/article/details/107140580/
在jjmeter官网下载安装包
https://jmeter.apache.org/download_jmeter.cgi
下载后需要将jmeter添加进环境变量中
测试环节
jmeter可视化测试
比如对http://localhost:8080/goods/to_list
请求接口进行压测
先新建一个线程组
设置线程组参数,配置:10个线程 同时启动 循环1次
新增http请求默认值
在上一步创建的线程组上,新增http请求默认值,所有的请求都会使用设置的默认值,这设置协议为http,IP为localhost,端口为8080
添加要压测的http请求
下图第一个红框内的协议、IP、端口不需要设置,会使用上面设置的默认值,只需设置请求的路径Path即可/goods/to_list
新增监听器,用于查看压测结果
这里添加三种:聚合报告、图形结果、用表格查看结果,区别在于结果展现形式不同
点击运行按钮开始压测,并查看结果
结果说明
Label
Label:请求的名称
就是脚本中Sampler的名称
Samples
Samples 样本
总共发给服务器的请求数量,如果模拟10个用户,每个用户迭代10次,那么总的请求数为:10 * 10 =100次
Average
Average 平均值
默认情况下是单个Request的平均响应时间,当使用了Transaction Controller(事务控制器) 时,也可以用Transaction的时间,来显示平均响应时间 ,单位是毫秒
Median
Median 中位数
50%用户的响应时间小于该值 单位是毫秒
如果中位数响应时间和99%Line时间相似,说明大部分用户响应时间都很快
如果中位数响应时间和90%Line时间慢得多,说明大部分用户响应时间都很慢
90%Line
90%Line 90%百分位
90%用户的响应时间小于该值 单位是毫秒
95%Line
95%Line 95%百分位
95%用户的响应时间小于该值 单位是毫秒
99%Line
99%Line 99%百分位
99%用户的响应时间小于该值 单位是毫秒
Min
Min 最小值
最小的响应时间 单位是毫秒
Maximum
Maximum 最大值
最大的响应时间 单位是毫秒
Error %
Error % 异常
错误率=错误请求的数量/请求的总数
Throughput
Throughput 吞吐量
默认情况下表示每秒完成的请求数(Request per Second)
Received KB/sec
Received KB/sec 接收
每秒从服务器端接收到的数据量
Send KB/sec
Send KB/sec 发送
每秒发送到服务器端的数据量
小总结
吞吐量越大越好,响应时间越快越好,Received和Send值越大越好
中文界面对比
参考https://blog.csdn.net/weixin_50829653/article/details/118675802
如何查看系统负载和性能瓶颈
服务器上运行top
可以看到load average情况
图上可以看到2个users在访问
1分钟平均负载1.58
5分钟平均负载0.50
15分钟平均负载0.23
Tasks显示全部进程信息
%CPU 用户进程占用17.7 系统进程占用58.9
KiB Mem内存信息 单位KiB
KiB Swap交换空间虚拟内存 单位KiB
PR 优先级
NI nice字 负值表示高优先级 正值表示低优先级
VIRT 进程虚拟内存的大小
RES 进程实际使用物理内存大小 包括Swap和共享内存
SHR 共享每次大小 比如与其他进程共同使用的共享内存
主要看RES看进程的占用