jmeter安装及使用
一、安装jdk
1、下载jdk,官网地址:https://www.oracle.com/java/technologies/downloads/
2、配置环境变量:
A、cmd进入命令提示符
B、检查jdk安装成功:java -version
C、检查JAVA_HOME环境变量:JAVA_HOME
D、配置JAVA_HOME环境变量:JAVA_HOME=C:\Program Files\Java\jdk-19\ (=后面的是安装路径)
上图所示,jdk就安装配置好了
二、启动jmeter
A、接上,进入到jmeter解压的包的bin目录下:cd /d D:\apache-jmeter-5.6\apache-jmeter-5.6\bin\
B、启动jmeter:call jmeter.bat
三、使用jmeter
不懂英语的改成中文,反正我是看不懂,就别为难自己,改就完了
1.添加线程组
右键测试计划,点击添加→线程(用户)→线程组,如下图:
设置线程数为10,Ramp-Up时间(秒)为5,循环次数为1,如下图:
线程数:一个用户占一个线程, 10个线程就是模拟10个用户。
Ramp-Up时间(秒): 设置线程需要多长时间全部启动。如果线程数为10 ,准备时长为10 ,那么需要1秒钟启动1个线程。也就是每秒钟启动1个线程。
循环次数:每个线程发送请求的次数。如果线程数为10 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为10*100=1000 。如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本。
2.添加元件
右键线程组,点击添加-->配置元件-->HTTP请求默认值(好处是改环境后改这个公共配置就行),如下图:
设置协议为HTTP,服务器名称或IP为127.0.0.1,端口号为8080,如下图:
3.添加取样器
右键线程组,点击添加→取样器→HTTP请求,如下图:
设置请求类型为GET,路径为/hello,如下图:
4.添加响应断言
右键线程组,点击添加-->断言-->响应断言,如下图:
设置测试字段为响应代码,模式匹配规则为相等,测试模式添加200,如下图:
5.添加察看结果树
右键线程组,点击添加-->监听器-->察看结果树,如下图:
6.添加汇总报告
右键线程组,点击添加-->监听器-->汇总报告,如下图:
7.启动压力测试
先点击保存按钮,把测试计划保存起来。然后点击启动按钮,如下图:
8.查看报告
察看结果树,请求成功的,如下图:
Sample:每个请求的序号
Start Time:每个请求开始时间
Thread Name:每个线程的名称
Label:Http 请求名称
Sample Time:每个请求所花时间,单位毫秒
Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes:请求的字节数
样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数
平均:每个线程请求的平均时间
最新样本:表示服务器响应最后一个请求的时间
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布
Label:每个 JMeter 的 element 的 Name 值。例如 HTTP Request 的 Name
#Samples:样本数量。多少个请求
Average:平均响应时间(单位:)。默认是单个 Request 的平均响应时间,当使用了 TransactionController 时,也可以以 Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间
95% Line:95% 用户的响应时间
99% Line:99% 用户的响应时间
注:为什么要有 *% 用户响应时间?因为在评估一次测试的结果时,仅仅有平均事物响应时间是不够的。假如有一次测试,总共有 100 个请求被响应,其中最小响应时间为 0.02 秒,最大响应时间为 110 秒,平均事务响应时间为 4.7 秒,你会不会想到最小和最大响应时间如此大的偏差是否会导致平均值本身并不可信?
我们可以在 95 th 之后继续添加 96/ 97/ 98/ 99/ 99.9/ 99.99 th,并利用 Excel 的图表功能画一条曲线,来更加清晰表现出系统响应时间的分布情况。这时候你也许会发现,那个最大值的出现几率只不过是千分之一甚至万分之一,而且 99%的用户请求的响应时间都是在性能需求所定义的范围之内的;如下图则是最低响应时间的值出现几率是很小的,实际 99% 的用户请求响应时间都要 20000+。
Min:最小响应时间
Max:最大响应时间
Error%:本次测试中出现错误的请求的数量 / 请求的总数
Throughput:吞吐量。默认情况下标示每秒完成的请求数(具体单位如下图)
KB/sec:每秒从服务器端接收到的数据量。