本文使用到的性能测试 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 等.
来源: https://yq.aliyun.com/articles/699725