Jmeter压力测试结果解析导读
# 1、什么是性能测试?
性能测试就是通过特定的方式对被测试系统按照一定测试策略施加压力,获取该系统的响应时间、TPS、吞吐量、资源利用率等性能指标,来检测系统上线后能否满足用户需求的过程。
性能指标——QPS和TPS
①QPS QPS,全名 Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
②TPS TPS 即 Transactions Per Second的缩写,每秒处理的事务数目。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。 客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数,最终利用这些信息作出的评估分。
注意:Qps 基本类似于 Tps,但是不同的是,对于一个页面的一次访问,形成一个 Tps;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“Qps”之中。
**压测工具Jmeter
什么是Jmeter?** ApacheJMeter ,是一个100%纯Java的开源软件,旨在加载测试功能行为和测量性能。
Jmeter主要元件

1、测试计划:是使用 JMeter 进行测试的起点,它是其它 JMeter测试元件的容器
**2、线程组:**代表一定数量的用户,它可以用来模拟用户并发发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
**3、配置元件:**维护Sampler需要的配置信息,并根据实际的需要修改请求的内容。
**4、前置处理器:**负责在请求之前工作,常用来修改请求的设置
**5、定时器:**负责定义请求之间的延迟间隔。
**6、取样器(Sampler):**是性能测试中向服务器发送请求,记录响应信息、响应时间的最小单元,如:HTTP Request Sampler、FTP Request Sample、TCP Request Sample、JDBC Request Sampler等,每一种不同类型的sampler 可以根据设置的参数向服务器发出不同类型的请求。
**7、后置处理器:**负责在请求之后工作,常用获取返回的值。
**8、断言:**用来判断请求响应的结果是否如用户所期望的。
**9、监听器:**负责收集测试结果,同时确定结果显示的方式。
**10、逻辑控制器:**可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
下面先来看一下简单的展示

各响应时长: 以95为例: 请求一个接口100次 这个数组中 第95%的位置的数据 如1 - 100ms 的95响应就是95ms ,有94条小于等于这个时间 。
# TPS、TPM、QPS、PV
**pv:**是指页面被浏览的次数,比如你打开一网页,那么这个网站的pv就算加了一次;
**tps:**是每秒内的事务数,比如执行了dml操作,那么相应的tps会增加;
**tpm:**是每分钟的事务数。
**qps:**是指每秒内查询次数,比如执行了select操作,相应的qps会增加。 不同的应用系统tps,qps是没有可对比性的。 例如: 应用A,每个select查询需要1ms, 一个connection的话,一直不停的执行,1S内 可执行1000次,也 就是1000qps; 应用B,每个select查询需要100ms, 一个connection的话,一直不停的执行,1S内 可执行10次,也 就是10
qps; 上面不同系统的两个qps是无法对比的,不能说哪个好哪个坏。
# TPS的作用
例1: 某单个接口,tps=10,希望这个接口每天能处理100万个请求,问能否满足?
每分钟处理6010=600个请求; 每小时处理60060=36000个请求; 每天处理24*36000=864000个请求; 不能满足需求

上图所属Errors中是所有错误的统计,计算每种错误的百分比 比如图中的错误是有99.98%(18674次请求)的返会结果未按约定(断言)返回,视为错误 0.02%(4次请求)的错误是访问异常(如服务器重启导致)
测试结果中 Top 5 Errors by sampler:前五个错误信息的采集
