Jmeter的学习
本教程基于b站性能恶化工程师, 哔哩哔哩链接:https://space.bilibili.com/627100141/video
Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件。相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主流的性能测试工具,是每个测试人员都必须要掌握的工具之一。
1.下载安装
进入Jmeter官网,https://jmeter.apache.org/download_jmeter.cgi
,下载对应的版本,此处需要注意的是现在最新版本的Jmeter要求jdk版本必须在8以上
。
此处简要介绍二进制文件和源代码文件的区别和联系,参考链接:https://blog.csdn.net/weixin_36965307/article/details/105209891
二进制文件和源代码文件的区别和联系
区别
binary文件
:二进制包里面包括了已经经过编译,可以马上运行的程序。你只需要下载和解包(安装)它们以后,就马上可以使用;源代码文件
:源代码包里面包括了程序原始的程序代码,需要在你的计算机上进行编译以后才可以产生可以运行程序,所以从源代码安装的时间会比较长。
联系
- source code 是程序员跑的码, binary code 是机器跑的代码。 source code 得经过compile 才能成为binary code ;
- 源代码包里的文件往往会含有种种源代码文件,头文件.h、c代码源文件.c、C++代码源文件.cc/*.cpp等;而二进制包里的文件则会有可执行文件(与软件同名的往往是主执行文件),标志是其所在路径含有名为bin的目录(仅有少数例外)。
下载完成之后解压,之后进行解压目录的bin目录双击 ApacheJMeter.jar
即可启动 Jmeter
2.性能测试
2.1 概述
为什么要进行性能测试? 满足真实场景的业务需求
评价性能准入原则:系统响应时间258原则:2s合格,5s一般,8s不可接受,针对不同场景可以放宽
1、响应时间
-
定义:从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间
-
关键路径:下图为一次http请求经过的路径,请求会经过网络发送到web服务器进行处理,如果需要操作DB,再由网络转发到数据库进行处理,然后返回值给web服务器,web服务器最后把结果数据通过网络返回给客户端
-
计算方法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即:(网络时间 + 应用程序处理时间)
-
响应时间-负载对应关系:
图中拐点说明:
(1)响应时间突然增加
(2)意味着系统的一种或多种资源利用达到的极限
(3)通常可以利用拐点来进行性能测试分析与定位
2、吞吐量
-
定义:单位时间内系统处理的客户端请求的数量
-
计算单位:一般使用请求数/秒做为吞吐量的单位,也可以使用页面数/秒表表示。 另外,从业务角度来说也可以使用 访问人数 /天 或 页面访问量/天 做为单位。
-
计算方法:Throughput = (number of requests) / (total time).
-
吞吐量-负载对应关系:
图中拐点说明:
(1)吞吐量逐渐达到饱和
(2)意味着系统的一种或多种资源利用达到的极限
(3)通常可以利用拐点来进行性能测试分析与定位
3、并发数
(1)并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。
(2)在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求
(3)系统用户数:系统注册的总用户数据
三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数
4、资源利用率
-
定义:指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量
-
通常需要关注的服务器资源如下:
(1)CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制
(2)内存:大脑中的记忆块区,将眼睛,皮肤等收集到的信息记录起来的地方,以供cpu进行判断,但是是临时的,访问速度快,如果关机或断电这里的数据会消失。
(3)磁盘IO:大