接口压力测试

在我们之前项目中主要针对常用的功能和比较重要要的接口做压测
就比如我们以前的一个社交app的登录功能,应为登录接口影响比较大,几乎每天都有涉及到大量的用户,所以我们就要定期的做压测
在每次做压测的时候我们都会把数据要过来,我们最经的用户量在50万,日活量在1.5万左右,我们用户人数访问最多的时候是周五的晚上10点左右,访问人数大概在每小时5千人,访问量更是能达到10万。
通过计算我们我们tps最高110以上,为了保证稳定性,我们会对这个接口进行压测的时候要求tps达到130以上,错误率更是不能高于千分之一,接口的响应时间不能高于500毫秒
在做压测前我会将之前的测试数据库的资料保存一份,然后我会模拟和生产环境比较匹配的数据,有一些从生产上导出来,用户数据我是让开发临时给我生产的,会将有一些有用的数据专门导出来作为喔的测试数据。我们的压力机目前用的是本机,应为我们压力要求并不是很高,所以基本都可以完成,我们用的工具是jmeter,创建线程组和HTTP取样器后,对着接口文档填写登录接口内容,其中账号用了参数化,尽量用不同的用户来测试,然后加上断言结果,除了jmeter做了默认的200的响应断言,我还会对结果的内容进行断言,就是返回结果里有没有登录成功。脚本编写完毕之后,添加聚合和汇总报告让他监听结果。开始计算的是tps数值进行填写,我会先对他进行一个短暂的测试,比如测试60秒,请求参数位500,一般都是正常。之前不正常都是网络原因,然后就是压测的话会影响到其他伙伴的测试,我会挑一个不忙的日子进行或者是中午下班休息时进行压测。就是压测完了我会看一下聚合报告的结果,看看错误有没有高于千分之一,平均响应时间是否低于500毫秒,为了保证大部分人的稳定性,也要看看90,95位数是否低于1000毫秒,可能会出现一部分用户的反应比较慢,然后我会看一下tps是不是稳定到130左右正常情况下一般也都没有啥问题。
只有对一些新接口压测的时候偶尔会出现一些问题。
如果不通过的话,一般我们会查看下cpu,内存是否达到瓶颈,或者配合开发查看不是该接口某个方法比较耗时,或者对应的数据库查询比较慢,让开发再优化下,然后我们继续进行压测,然后看看结果如何。因为目前我们的硬件资源还是扛得住的,一般都能通过开发优化软件数据库中间件完成的。


照经验公式:
注册用户除以10 = 日活(这里指一般系统来说,微信这种太特殊,注册用户基本跟日活一个数量级)
日活除以10 = 同时在线人数 ,
峰值=2*同时在线人数

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值