性能测试工具 对于一个日活量 20 万的接口,应该怎么做压测

毛驴 · January 18, 2019 · Last by old shen replied at January 22, 2019 · 5989 hits

业务需要,对一个开户的接口做压测,要求就是能达到日开户20万左右,请问下大佬,有什么方案针对这个接口做压测呢

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 10 条回复 时间 点赞

我想知道做一个完整的性能测试的流程是什么样的

  1. 日活量20W 和日开户20W 的概念不一样吧?
  2. 如果是日开户20W,需要估算一下转换为每秒大概是多少并发量(根据业务模型来估算峰值)。 压测的时候可以以这个值为参照,设置对应的并发数(一般系统的承受量要比估算的峰值高)。
  3. 日活20W,那么说明系统其它的接口也会产生对应的请求。同样需要估算有哪些接口、每个接口的请求数大概如何。对应的是需要设置不同接口的权重。

首先明确一下开户接口调用的时间分布 最高一段时间会有多少人 然后转换到一秒会有多少tps给这个值*2 就当你的目标 然后看看用户行为 会有同时注册这种情况吗如果有就要增加一个抢注册这样场景 并发需要设置集合点 其他可以再看看会有持续比较长时间一值有人注册的场景 可以模拟这个场景看系统较长时间运行情况

以上纯属拍脑袋

日活量 开户20W,那需要掉用很多接口,可以考虑下在某一接口上做并发,比如发送验证码,用户四要素验证并发,入库并发。账号激活并发

个人愚见,列出大概步骤:
一、单接口的容量测试
1、单机部署测试单接口的容量,阶梯测试方法;
2、双机集群部署测试单接口的容量,评估扩容能力,以及预估线上当前可支持的最大容量;
二、场景测试
1、整理出系统的主业务场景,监控历史数据,设计出场景模型,即场景比例和场景的漏斗请求转换比例;
2、根据当前业务模型,测试性能情况,分析是否满足业务场景;
3、对主要被测业务适当调整流量比例,进行摸高测试,评估在高流量情况下,性能情况。

压测是往死里压,压出一台设备或者一个集群的瓶颈,还有就是否在特殊场景下压力导致系统崩溃。举个例子:数据库在没有redis缓存的情况吓被击穿,此时的压力数能承受多少。一般系统架构设计没问题,承受的压力是有预估的,出问题更多的是不高可用性引起的性能问题。

同3楼,先找出业务发生主要的时间点,如果没有明确的需求,那就2/8原则来弄:80%的业务发生在20%的时间内
80%*20W/(3600*20%*8)=28,也就是每秒至少完成28笔,如果是30秒内就要完成20W笔那就是另外一回事了,直接除:20W/30=6667,每秒6667笔
如果每笔业务最慢能接受的响应时间是2S,那并发就好算了:28 * 2或者6667 * 2,就是需要分别确保在56和13334并发的情况下响应时间在2S以内,服务器资源使用率在可控范围内便可……至于是否有其他的额外事物时间,就需要根据自己的业务来了
楼主的测试需求属于容量范畴,不应该单纯的考虑压力测试场景,压力测试的主要目标是限定资源、持续加压,找到系统fail的点,这跟需要在多久时间内完成多少笔业务其实是两个维度的事情。

槽神 回复

为什么3600×20%之后还要×8呢?

old shen 回复

80%的业务发生在20%的时间内,日活——日,一般就是拿工作时间作为参考基准时间窗口的,人家又没说是时活

槽神 回复

哦哦,明白了。谢谢解惑了

毛驴 关闭了讨论 22 Feb 11:09
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up