全称: Transactions Per Second , 也就是 每秒事务数
TPS 是性能领域中一个关键的性能指标概念,它用来描述每秒事务数。我们也知道 TPS 在不同的行业、不同的业务中定义的粒度都是不同的。所以不管你在哪里用 TPS,一定要有一个前提,就是所有相关的人都要知道你的 T 是如何定义的。
经常有人问TPS中的T 应该如何定义?是指某一个接口还是某个业务流程?这个实在是没有具体的“法律规定”,那就意味着,你想怎么定就怎么定。
通常情况下,我们会根据场景的目的来定义 TPS 的粒度。
如果是接口层性能测试,T 可以直接定义为接口级;如果业务级性能测试,T 可以直接定义为每个业务步骤和完整的业务流。我们用一个示意图来说明一下。
如果我们要单独测试接口 1、2、3,那 T 就是接口级的;
如果我们要从用户的角度来下一个订单,那 1、2、3 应该在一个 T 中,这就是业务级的了。
所以,在我们和别人讲述TPS时,可以先确定好这里的T指的是什么.
全称:Queries Per Sencond ,每秒查询数
其实QPS 一开始是用来描述 MySQL 中 SQL 每秒执行数 Query Per Second,所有的 SQL 都被称为 Query。后来,由于一些文章的转来转去,QPS 被慢慢地移到了压力工具中,用来描述吞吐量.
现在大多都指 每秒能够响应的查询次数,即 1 秒内完成的请求数量.
这里介绍一个常用的方法.就是用Jmeter进行压测,查看结果报告即可得出QPS.
如果有小伙伴还没有安装Jmeter这个软件的话,可以参考这个博客安装JMeter下载和安装
在安装之后,打开Jmeter,看的界面应该是这样的
然后就是进行压测的步骤:
点击Test Plan双击, 新增一个线程组.
然后指定线程数,这里我指定5000个线程,每个线程循环两次,也就是一共发送1w个请求.
下面就开始添加http请求,双击测试,新增HTTP Request
新增具体的请求参数,路径,端口等等.
添加结果树,这个可以看请求成功或者失败等.双击"举例"添加.
添加聚合报告,我们压测的QPS,响应时间等都可以在此报告中看到
现在准备工作已经完成,开始对http://127.0.0.1/test/test这个接口进行测试.点击开始按钮即可.
这里主要查看的是聚合报告.
各字段含义如下:
Simples:总的样本数量,也就是总的请求数量
Average: 平均响应时间
Median:中位数,也就是50%用户的响应时间
90%Line:90%的用户响应不会超过该时间
95%Line:95%的用户响应不会超过该时间
99%Line:99%的用户响应不会超过该时间
Min:最小响应时间
Maxinum:最大响应时间
Error%:错误率
Throughput:吞吐量,默认情况下表示每秒完成的请求数,可当做QPS
Received KB/s:每秒接收的数据大小,单位KB
Send KB/s:每秒发送的数据大小,单位KB
当需要查看某个接口的QPS,查看Throughput指标即可.
需要注意的是,描述一个QPS通常会加一些限定条件,比如说在多少的响应时间内,QPS达到多少多少,
其次,线程数量和循环次数将会影响最终的测试报告,需要根据具体的业务场景多多测试才行。
======================================================================================================
包含以下所有分类中的各种经典书籍呦.你想要的这里都有
今天的分享就到这里了,有问题可以在评论区留言,均会及时回复呀.
我是bling,未来不会太差,只要我们不要太懒就行, 咱们下期见.