压力测试考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在。压测都是为了系统在线上的处理能力和稳定性维持在一个标准范围内,做到心中有数。
使用压力测试,我们有希望找到很多种用其他测试方法更难发现的错误。有两种错误类型是:内存泄漏,并发与同步。
有效的压力测试系统将应用以下这些关键条件:重复,并发,量级,随机变化。
比如,常规的单元测试只能测试功能的正确性
压力测试:比如,1s钟以内同时有一百万个人访问它,可能就能测出内存泄漏以及并发与同步问题。
内存泄漏:比如,我们这个接口没写好,我们在调用它的时候,每次在一个循环内,不断的创建对象,并没有复用对象,百万的并发一上来,我们对象就不断的创建创建,以至于撑爆我们的内存,这就是我们说的内存泄漏。
也能发现代码的并发问题,比如,我们的代码单线程跑起来没什么问题,但是,并发量一上去,就会出现各种的线程不安全问题。
1.1 性能指标 1.1.1 响应时间(Response Time: RT)响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。
1.1.2 HPS(Hits Per Second)每秒点击次数,单位是次/秒
1.1.3 TPS(Query per Second)系统每秒处理交易书,单位是笔/秒
1.1.4 QPS(Query per Second)系统每秒处理查询次数,单位是次/秒
对于互联网业务中,如果某些业务有且仅有一个请求连接,那么TPS=QPS=HPS,一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器单价请求。
无论TPS、QPS、HPS,此指标是衡量系统处理能力非常重要的指标,越大越好,根据经验,一般情况下:
金融行业:1000TPS~50000TPS,不包括互联网化的活动
保险行业: 100TPS 100000TPs, 不包括互联网化的活动
制造行业: 10TPS~5000TPS
互联网电子商务: 10000TPS~1000000TPS
互联网中型网站: 1000TPS~50000TPS
互联网小型网站: 500TPS 10000TP
1.1.5 最大响应时间(Max Response Time)指用户发出请求或者指令到系统做出反应(响应)内最大时间。
1.1.6 最少响应时间(Mininum ResponseTime)指用户发出请求或者指令到系统做出反应(响应)的最少时间。
1.1.7 90%响应时间(90% Response Time)是指所有用户的响应时间进行排序,第90%的响应时间。
从外部看,性能测试主要关注如下三个指标
吞吐量:每秒钟系统能够处理的请求数、任务数。
响应时间:服务处理一个请求或一个任务的耗时。
错误率:一批请求中结果出错的请求所占比例。
二、JMeter 2.1 JMeter安装官方网站
下载对应的压缩包,解压运行jmeter.bat即可
2.2 Jmeter使用视频教程