压力测试指导方案

简介: 1 压测流程1.1 压测核心步骤压测方案确定压测工具配置压测执行压测结果评估2 压测方案2.1 压测范围确定小程序首页(简称首页):用户进入该页面涉及的所有商户端接口(链式调用仅需压测一级接口。

1 压测流程

1.1 压测核心步骤

  • 压测方案确定
  • 压测工具配置
  • 压测执行
  • 压测结果评估

2 压测方案

2.1 压测范围确定

  1. 小程序首页(简称首页):用户进入该页面涉及的所有商户端接口(链式调用仅需压测一级接口。)
  2. 小程序内活动营销推广主链路(简称PR链路):用户走完推广链路涉及的所有商户端接口
  3. 权益线上核销链路(简称核销链路):用户完成核销所涉及的所有商户接口

2.2 压测信息收集

  • 收集要求

    • URL获取全量,知道每个URL的调用链路
    • 压测是全链路的,不会遗漏底层的调用,如果调用了下游服务(如第三方的城市列表等服务),需要确认下游服务的系统性能(TPS)
    • 务必注意不能让压测数据污染线上数据(对于可能污染线上数据的接口,请做好准备工作,如压测时切换到空库等)
    • 如果有缓存,但是缓存时间较短(缓存有效期不足12小时),建议按无缓存压(压测时关闭缓存)
  • 以下为某小程序为例
业务地址(小程序内路径) 服务 接口地址 是否有缓存 是否调用下游服务
未登录,进入首页 初始化session URL https://test1.domain.com.cn/mwos/rest/home/initSession 无,写入数据库
初始化banner图片 URL https://test1.domain.com.cn/mwos/rest/home/initHome 有缓存,24小时更新
获取用户信息 URL https://test1.domain.com.cn/mwos/rest/miniapp/getUserInfo 是,调用支付宝https://openapi.alipay.com/mwos/rest/miniapp/getUserInfo
获取登录信息 URL https://test1.domain.com.cn/mwos/rest/miniapp/login 无,读取数据库
首页->点餐按钮 获取城市定位 URL https://test1.domain.com.cn/mwos/rest/misc/search/getCityByRgeoCode 无,读取数据库 是,调用某提供商 https://XXX.XXX.com/getLocation

2.3 计算压测模型

根据曝光量与转化率模型计算小程序压力承受目标:
假设小程序全天曝光量为3.6亿,转化率3%,按照80:20定律计算:
(3.6亿 * 0.03 * 0.8) / (24 * 3600 * 0.2)= 500 tps

根据接口在链路中被依赖情况计算各接口压力承受目标:
如现在商户后端有3个接口A,B,C。每个接口在链路中被依赖的情况如下:

链路名称 要求TPS 该链路需要调用的接口
首页 要求500tps 接口A
接口B
PR链路 要求200tps 接口B
接口C

因此各个接口压测目标值应该为:
接口A:500tps
接口B:700tps(500+200)
接口C:200tps

3 压测工具配置

压测工具选型:
image.png

支付宝行业压测中心(文档查看需要使用支付宝开放平台账号登陆)
平台地址:https://stresstest.alipay.com
帮助文档:https://stresstest.alipay.com/main#/help.htm

4 压测执行

注意事项:
如果目标是500tps,不要一开始就施压500tps,先用10tps先看下,根据服务器、数据库负载情况,再慢慢追加;
调整的原则是:

  • 每个等级压测5分钟,观察后在调整;

    • 平台主要观察:耗时趋势,成功率
    • 服务端监控:cpu、DB: load,cpu,gc;
  • 如果按100tps追加,前面追加可以一直100tps追加,后面接近预期时,追加慢一点,如改成50tps;
  • 如果发现从500没有问题,但是追加100发现有报错,那么不要直接暂停,先将tps降一下,降到850看下效果,再根据情况调整,摸到一个准确的值;

使用技巧:

  • 页面上可以使用固定模式,时间选择长一点,选个2小时;
  • 如果发现耗时增长,压力过大,服务器报错,立马停止;
  • 下次启动时,还是需要慢慢增加,可以考虑稍微大一点的值增加,比如200tps,追加的时候可以稍微快一点,因为已经知道在500下不会有压力;

5 压测评估

类别 判断维度 不通过 通过 备注
服务端性能 超时概率 大于百分之一 小于百分之一 性能测试团队根据通过标准,判定被测性能点不通过,需要由专家组来评审是否上线
错误概率 大于百分之一 小于百分之一
TPS 小于期望高峰值 大于期望高峰值
CPU 利用率 大于 75% 小于 75%
响应时间 大于2s 小于2s
Load 平均每核 CPU 的 Load 大于 1 平均每核 CPU 的 Load 小于 1
JVM 内存使用率 大于 80% 小于 80%
Full GC 频率 平均小于半小时 1 次 平均大于半小时 1 次
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
3月前
|
监控 测试技术 数据处理
如何做性能测试?
如何做性能测试?
|
3月前
|
监控 测试技术 Apache
性能测试工作如何开展?
性能测试工作如何开展?
|
运维 监控 中间件
性能测试从零开始实施指南——流程篇
性能测试是一项严谨的需要各团队协同配合的工作,其中包括产品、开发、运维、网络、DBA、测试等角色。从零开始实施性能测试,而性能测试流程,是最重要的一步。
性能测试从零开始实施指南——流程篇
|
运维 监控 安全
性能测试从零开始实施指南-场景模型篇
需求不明确导致无法对测试点&测试场景进行详尽完善的分析,最终的测试结果与实际需要的结果差距很大,无法对瓶颈定位和线上容量规划提供精确的参考;
性能测试从零开始实施指南-场景模型篇
|
运维 监控 NoSQL
性能测试从零开始实施指南——测试计划篇
首先要阐述本次性能测试的背景,即被测系统类型,面向哪些用户,具备什么特点,为什么要进行性能测试,预期的一些指标等等。
性能测试从零开始实施指南——测试计划篇
|
运维 监控 NoSQL
性能测试从零开始实施指南——测试报告篇
单机水位是多少、满足业务需求要上多少机器、什么时候该加机器、什么时候应该减机器。双11等大促场景需要准备多少机器,既能保障系统扩展性和稳定性,又能节约成本。
性能测试从零开始实施指南——测试报告篇
|
Java 测试技术 应用服务中间件
软件测试面试题:交付一个性能测试项目,请阐述你的性能测试流程?
软件测试面试题:交付一个性能测试项目,请阐述你的性能测试流程?
135 0
|
前端开发 物联网 测试技术
谈谈性能测试的必要性
谈谈性能测试的必要性
216 0
|
测试技术
视频一对一源码,正确认识压力测试和性能测试
视频一对一源码,正确认识压力测试和性能测试
|
测试技术
系统验收时需要关注四个与性能测试有关的细节
项目收尾验收阶段,大家的焦点容易在功能验收上,而对于性能方面容易产生一些验收挑战。 一是性能测试技术门槛高,二是性能测试成本高,三是性能测试中理解和设计容易歧义。 其中有四个细节,需要多关注。
131 0
系统验收时需要关注四个与性能测试有关的细节