一、需求
现有一个http请求接口http://localhost:8080/goods/to_list,要使用Jmeter对其进行压测
二、操作过程
1、步骤
1、新建线程
2、设置线程参数
3、新增http请求默认值
4、添加要压力测试的http请求
5、新增监听器,用于查看测试结果
新建线程: TreadGroup
右键Test Plan
设置线程参数:
10个线程,所有线程0秒内启动(同时),循环为1次
设置http请求默认值:右键线程:HTTP Request Defaults
协议:http
IP:localhost
端口号:8080
添加要压力测试的http请求:HTTP Raquest
path:/goods/to_list
新增监听器,用于查看结果:右键点击线程添加
1、Aggregate Report:聚合报告
2、Graph Result:图形结果
3、View Results in Table:表格结果
2、执行
1、点击绿色三角形图案执行(可能会提示先保存文件,可以先保存再点击)
3、查看聚合报告结果
Label:定义的HTTP请求名称
#Samples:表示你这次测试中一共发出了多少个请求(上面是10个用户,每个循环了1次,所以是10)
Average:访问页面的平均响应时间,默认情况下是单个 Request 的平均响应时间,当使用了
Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间
Median:中位数,也就是 50% 用户的响应时间
90% Line:90% 用户的响应时间,后面以此类推
Min: 访问页面的最小响应时间
Max: 访问页面的最大响应时间
Error%: 错误的请求的数量/请求的总数
Throughput:每秒完成的请求数,吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数
KB/Sec: 每秒从服务器端接收到的数据量,
Note:关于 50% 和 90% 并发用户数的含义,这就有关于描述性统计
1、因为在评估一次测试的结果时,仅仅有平均事务响应时间是不够的,因为不同组的测试结果数据平均数都不太一样,遇到最大值与最小值相差太远的情况,那么平均数受到了这两个数的影响太大而导致平均数不可信。
2、在确定性能需求时,你可以用平均事务响应时间来衡量系统的性能,也可以用90%或95%用户响应时间来作为度量标准,它们并不冲突。实际上,在定义某些系统的性能需求时,一定范围内的请求失败也是可以被接受的。
3、如果你想使用这种方法来评估系统的性能,一个推荐的做法是尽可能让你的测试场景运行的时间长一些,因为当你获得的测试数据越多,这个响应时间的分布曲线就越接近真实情况。
4、查看表格结果
Sample:每个请求的序号
Start Time:每个请求开始时间
Thread Name:每个线程的名称
Label:Http请求名称
Sample Time:每个请求所花时间,单位毫秒
Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes:请求的字节数
样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数
平均:每个线程请求的平均时间
最新样本:表示服务器响应最后一个请求的时间
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
5、查看图形结果
样本数目:发送到服务器的总请求数
最新样本:服务器响应最后一个请求的时间值
吞吐量:服务器每分钟处理的请求数
平均值:总运行时间除以发送到服务器的请求数
中间值:有一半的服务器响应时间低于该值而另一半的高于该值
偏离:服务器响应时间变化、离散程度测量值的大小
6、查看结果树结果
通过察看结果树,我们可以看到每个请求的结果,其中红色的是出错的请求,绿色的为通过。
Thread Name:线程组名称
Sample Start: 启动开始时间
Load time:加载时长
Latency:等待时长
Size in bytes:发送的数据总大小
Headers size in bytes:发送数据的其余部分大小
Sample Count:发送统计
Error Count:交互错误统计
Response code:返回码
Response message:返回信息
Response headers:返回的头部信息