压力测试
压力测试考察当前硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。压测都是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数。
使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误。有两种错误类型是:内存泄漏,并发和同步。
有效的压力测试系统将应用以下这些关键条件:重复,并发,量级,随机变化。
性能指标
- 响应时间(RT):响应时间指客户端发起一个请求,到客户端接收到从服务端返回的响应结束,整个过程所耗费的时间。
- HPS:每秒点击次数,单位是次/秒
- TPS:系统每秒处理交易数,单位是笔/秒。也可认为是每秒的事务数,一个完整的业务做完。
- QPS:每秒处理查询次数,单位是次/秒。对于互联网业务中,如果某些业务中有且仅有一个请求连接,那么TPS=QPS=HPS,用HPS来表示服务器的单击请求
- 无论TPS,QPS,HPS,这些指标是衡量系统处理能力非常重要的指标,越大越好,根据经验,一般情况下:
金融行业:1000TPS~50000TPS,不包括互联网化的活动
保险行业:100TPS~100000TPS,不包括互联网化的活动
制造行业:10TPS~5000TPS
互联网电子商务:10000TPS~1000000TPS
互联网中型网站:1000TPS~50000TPS
互联网小型网站:500TPS~10000TPS - 最大响应时间:指用户发出请求或者指令到系统做出反应的最大时间
- 最少响应时间:指用户发出请求或者指令到系统做出反应的最少时间
- 90%响应时间:指所有用户的响应时间进行排序。第90%的响应时间
- 从外部看,性能测试主要关注三个指标
- 吞吐量:每秒钟系统能够处理的请求数,任务数
- 响应时间:服务处理一个请求或一个任务的耗时
- 错误率:一批请求中结果出错的请求所占比例
TPS:意思是每秒事务数,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。
QPS:每秒处理查询次数
如果是对一个接口(单场景)压测,且这个接口内部不会再去请求其它接口,那么tps=qps,否则,tps≠qps
如果是对一个接口(单场景)压测,且这个接口内部会去请求其它接口,那么tps包含多个qps
jmeter聚合报告中,Throughput是用来衡量吞吐量,通常由tps来表示
Jmeter压力测试
安装Jmeter
下载:https://jmeter.apache.org/
解压。
bin
目录下,jmeter.bat
双击启动
设置语言:
压力测试示例
1.添加线程组:
2.设置线程组
这里4000个并发
Ramp-up:表示花费x秒,启动并执行n条线程。
持续时间:设置压测时长
启动延迟:点击运行后,等待x秒后,压测才开始
启动时间和结束时间:可以做定时任务
3.添加http
请求
4.设置http
请求
Get请求
Post请求:
https://blog.csdn.net/github_36032947/article/details/78299020
5.添加查看结果数
6.添加汇总报告
7.添加聚合报告
9.开始测试
注意:下一次测试之前。要先清空之前的测试
右侧能看这次并发执行,共花费的时间,注意jmetre版本是5.2.1才有,之前的5.3的版本是没有的。旁边的是线程数
10.查看结果树
11.查看汇总报告
12.查看聚合报告
问题解决
jmeter window
有时会报错 Address already in use
解决:https://zhuanlan.zhihu.com/p/62705494