本文使用到的性能测试 PTS,点击这里,了解详情。
一、业务场景
集团对分司组织业务培训,培训完毕后在App端进⾏答题测试。对App后端接⼝进行压测。
多个分司相同的业务部⻔分批次进行,测试额人员100以内,从题库中随机抽取50道题,考虑每⼈思考在1-10s内提交。保证取题,答题的API接⼝顺畅。
- 登录
- 取题
- 答题
- 完成
二、引入PTS 对应用进行性能压测
压测参数是:并发200,RPS2000,全程图形化操作,配置过程相对简单,非开发人员都可以直接上手。
2.1 场景配置
主要压测取题、答题两个API,串联取题、答题,中间添加思考时间:
- 取题API,答题类型,题号配置了随机函数;
红色框内的系统函数很好用,包括截取字符串、转大写、转小写等,见下图:
- 配置断⾔,判断响应码为200,接⼝正常响应;
- 思考时间,模拟⽤户思考答题时间
- 答题
2.2 施压配置
模拟100个⽤户在线操作,初步先给值50。这里100个在线⽤户并不同于100个并发,关于 VU RPS TPS 三者的概念,可参考PTS文档。
- 并发50,逐步递增;
2.3 压测报错
- 压测过程中遇到的问题
【响应状态异常】
被压测端拒绝连接,也就是TCP层⾯被压测端发出了reset。,这个问题引起的原因有:
- 带宽上限,新建或者连接维持上限,防⽕火墙拒绝,安全产品拦截,业务服务处理不了主动拒绝。
- 连接数、CPS连接数、QPS 到达上限。
【SLB 限制】
- 40并发,思考时间 0-5秒
- 100并发,思考时间 0秒
【概览】
【明细指标】
由于RPS上限为2000,再多加并发也没有意义了。不过⽬的还是达到了。思考时间设置为0 ,TPS 达到了了 800 左右,RT⽆明显波动。 取了了⼀下ECS的监控,波动也在控制范围内。
- ECS的CPU 、内存指标
- ECS的⽹网络指标
三、压测总结
- 压测过程整体⽐较简便,⼀句话总结:云上化繁为简,分布式下测性能;
- 遇到的问题2天后又压测⼀一下,压出了SLB 的503,去看了⼀下 QPS 果然超了,我们实际SLB的规格QPS是1000 。
所以,测试过程中要先了解各中间层面的限制,例如防火墙、SLB等。