最近在学习用jmeter来进行压测,压测的时候发现了很多问题,一般都是通过百度、问熟人一步步去解决的,我希望我能把我碰到的问题记录下来,以后有像我一样的初学者碰到这个问题,也能跟着我的分享得到解决
记得以前在跟电商项目的时候,总是要跟客户解释这个TPS、QPS的概念,很多人都混淆、理解错这两个概念
首先来说下TPS。
TPS很多人都知道就是“每秒钟所处理的事务数”,那么这个事务到底是指什么呢?
事务是用户自定义的一个标识,是通过一个或多个操作来完成一个业务所需要的操作,事务时间反映的是一个操作过程的响应时间。
比如一个用户从登录-->浏览商品-->将商品加入购物车-->提交订单生成待支付订单-->支付订单-->订单完成
从用户登录到生成一个待支付的订单就是一个事务,如何测试系统每秒能处理几个订单,这就是通常说的TPS。
QPS(Query Per Second)
就是每秒查询数,每秒系统能够处理的查询请求次数
TPS与QPS是有区别的
事务表示客户端发起请求到收到服务端最终响应的整个过程,这是一个TPS
而在这个TPS中,为了处理第一次请求可能会引发后续多次对服务端的访问才能完成这次工作,每次访问都算一个QPS。
所以,一个TPS可能包含多个QPS
【其实这里我会简单粗暴不专业地概括为:QPS是衡量单接口的处理能力(一般是指单接口查询),TPS可衡量单接口或者多接口(也就是场景链路)的处理能力】
另外还有个日PV、峰值QPS的计算公式
日PV=QPS*60*60*24 //即QPS乘以一天的秒数
峰值QPS=(日PV*80%)/(60*60*24*20%)//通用公式每天80%的访问集中在20%的时间里,这20%时间叫做峰值时间 这里用的也就是二八原则