压力测试指导方案

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 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进行规格选择与性能压测。
相关文章
|
7月前
|
测试技术 UED
测试方案有点难?ChatGPT助你轻松编写测试方案!
使用ChatGPT辅助编写测试方案,以高级搜索功能为例,涉及关键词搜索、过滤条件、界面兼容性、错误处理等测试点。首先明确测试需求,如按作者、时间范围和分类搜索,产品形态为App和Web应用。然后,通过提示词逐步细化方案,包括App的移动设备适配、耗电量和内存占用测试。通过不断优化提示词,确保测试方案全面覆盖功能性能、用户体验及专项测试内容。
|
2月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
29天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
35 1
|
2月前
|
机器学习/深度学习 存储 测试技术
从0到1:如何规划一套流量回放自动化测试方案
本文介绍了流量回放自动化测试的完整方法,从企业战略到交付的四个关键环节:Discovery(深度挖掘)、Define(定义目标)、Design(详细设计)和Delivery(交付与反馈)。通过这些步骤,帮助企业优化系统性能和稳定性,确保产品的高质量。
60 4
|
2月前
|
存储 NoSQL 大数据
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
35 3
|
4月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
162 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
4月前
|
测试技术 开发工具 iOS开发
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
这篇文章是iOS自动化测试方案的第三部分,介绍了在没有MacOS系统条件下,如何使用WDA(WebDriverAgent)结合Python客户端库facebook-wda和tidevice工具,在Windows系统上实现iOS应用的自动化测试,包括环境准备、问题解决和扩展应用的详细步骤。
318 1
iOS自动化测试方案(三):WDA+iOS自动化测试解决方案
|
7月前
|
安全 测试技术 网络架构
【专栏】编写网络设备割接方案的七个步骤,包括明确割接目标、收集信息、制定计划、设计流程、风险评估、准备测试环境和编写文档。
【4月更文挑战第28天】本文介绍了编写网络设备割接方案的七个步骤,包括明确割接目标、收集信息、制定计划、设计流程、风险评估、准备测试环境和编写文档。通过实际案例分析,展示了如何成功完成割接,确保业务连续性和稳定性。遵循这些步骤,可提高割接成功率,为公司的网络性能和安全提供保障。
718 0
|
4月前
|
测试技术 数据安全/隐私保护 iOS开发
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
iOS自动化测试方案的第四部分,涵盖了基础环境准备、iPhone虚拟机设置、MacOS虚拟机与iPhone真机的连接,以及扩展问题和代码示例,确保读者能够顺利完成环境搭建并进行iOS自动化测试。
322 0
iOS自动化测试方案(四):保姆级搭建iOS自动化开发环境
|
4月前
|
测试技术 虚拟化 iOS开发
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone
这篇文章是iOS自动化测试方案的第二部分,详细介绍了在Xcode开发者工具中构建WebDriverAgent(WDA)应用到iPhone的全过程,包括环境准备、解决构建过程中可能遇到的错误,以及最终成功安装WDA到设备的方法。
192 0
iOS自动化测试方案(二):Xcode开发者工具构建WDA应用到iphone