XXXXAPP-压测报告
目录
1. 测试目的
通过负载测试评估当前系统在压测环境的服务器端性能情况;
负载测试:模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈。
2. 测试范围
本次压测结合APP核心功能页面作为范围筛选,通过模拟用户正常操作浏览页面作为场景;输出压测接口评估记录文档,如下:
XXXXAPP压测接口评估记录:
【Mg】弹窗广告-分页列表 | /api/marketing-center/app/popup-advertising/list?crowdLimit=0&popupLocation=0&popupPlatform | |
首页页面-详情 | /api/marketing-center/h5/custom/page/homePage | |
【App】开屏广告-获取 | /api/marketing-center/app/start | |
查询品牌上新列表(首页 品牌专区) | /api/goods/app/goods/query/list/brand/goods/1 | |
查询商品导航 | /api/goods/app/goods/query/list/n | |
查询商品分页列表 | /api/goods/app/goods/query/list/pa?current=1&size=20 | |
根据商品编码查询商品信息-列表查询 | /api/goods/app/goods//list/goods?goodsSpuNums=1-1648527921680022,1-1648545393700020 | |
【App】客户端参数-获取 | /api/system/client-param/take?key=trackUploadFileSize | |
【App】主理人-详情 | /api/ustomer/app/cb/deta1430112754290659330?isSimple=1&withAttentionInfo= | |
【App】版本信息-版本更新检查 | /api/sm/ape/checkAUpdate?appName=1&atuName=2.8.1&deviceType=1 | |
用户信息详情 | /api/light-chainustomerbasic/customerDetail?customerId=1430112754290659330 | |
【App】新人礼包-获取进行中的活动 | /api/light-chain-app/new-customer-activity/get-start | |
创意页浏览刷新 | 获取推荐组合定制信息 | /apap/suit/recommend/suit/list |
【App】广告位列表查询 | /api/arketing-center/app/layout/getLayout | |
【App】创意页面可配字符 | /api/g-center/appgetConfig | |
【Mg】弹窗广告-分页列表 | /apip-advertising/list?crowdLimit=0&popupLocation=0&popupPlatform=0 | |
2.6.1 创意-印花图案列表 | /api/navigation/ideas-element/0/3 | |
2.6.1 节日素材-为你推荐 | /apcommend-group?current=1 | |
2.6.1 素材上新 | /api/xtend/new/10 | |
2.6.1 创意首页印花分类导航 | /api/ligigation/list/15?eleType=1 | |
商品页浏览刷新 | 商品详情接口 | /api/lig/app/goods/query/goods/detail |
【App】优惠券票券-商品/定制详情可领优惠券展示 | /api/lightcenter/app/coupon-voucher/may-take-coupon | |
app2.8-动态列表查询 | /apip/dynamic/list | |
用户-默认地址 | /api/light-er/customerDefaultAddress | |
查询商品运费 | /api/lights/query/calculate/freight | |
全部商品页浏览刷新 | 查询商品导航 | /api/ligds/query/list/nav |
查询商品分页列表 | /api/list/page?current=1&size=20 | |
开始定制 | 实时计算创意的价格 | /api/lighriginality/constantly/compute/price |
生成创意方案 | /api/liuit/generate/originality | |
app创意页面spu详情查询接口(app2.7) | /api/lilothes-spu/idea/spu?spuId=26 | |
定制页面编辑 | 定制页面素材分类导航查询 | /apation/cz/element |
app-定制字体分页 | /api/light-nt/page | |
素材列表查询 | /api/lightz/elment/list | |
app-定制字体颜色列表 | /api/light-ch/color-list | |
商品创建订单操作 | 商城订单 下单 | /api/ligoods-ord/place |
用户登录 | 用户手机绑定登录 | /apiustome/login/phone |
3.1 测试环境信息
*运维同学申请资源;
环境信息 | 配置 | 备注 |
ECS实例:light-chain-stress-01 | 4C*16G 50G存储 1Mbps公网带宽 | 部署业务相关服务 |
ECS实例:light-chain-stress-02 | 4C*16G 50G存储 1Mbps公网带宽 | 部署公共相关服务 |
共享带宽 | 5Mbps | |
ALB | 按量付费 |
3.2 测试数据准备
测试数据:从生产上数据同步到测试数据库,达到数据量一致的目的;
参数化数据:不同类型的数据处理逻辑有差异时,需要通过测试数据的多样化来提高性能测试代码的覆盖率,而参数化是最常见的方式;
3.3测试工具准备
*测试过程中使用的工具
类型 | 工具 | 备注 |
脚本工具 | Pycharm、Postman | |
监控工具 | Locust | 吞吐量、响应时间、报错率 |
Nightingale | 主机和容器监控 | |
Grafana | Mysql、Redis和ALB带宽监控 |
4. 性能测试执行阶段
4.1理论场景设计
本次压测策略参考负载测试,通过逐步加压的方式,寻找当前压测服务环境相对稳定支持的并发用户数、接口短板或系统极限;
4.2具体实现设计
通过单个页面并发增加,来找出每个页面首先出现瓶颈的接口
5. 性能压测结果收集情况
登录 | 场景 | 结果 |
150并发,持续半小时 | 平均响应时间2.5秒,rps=52 | |
300并发,持续半小时 | 平均响应时间5.5秒,rps=51,内存消耗未达60% | |
400并发,持续半小时 | 平均响应时间7.3秒,rps=50 | |
500并发,持续半小时 | 平均响应时间9.2秒,rps=53 | |
600并发,持续半小时 | 平均响应时间11秒,rps=23,内存消耗未达60% | |
结论 | <300并发情况下,登录接口表现良好; |
首页 | 场景 | 结果 |
120并发,持续半小时 | 单接口最长响应时间约5秒,rps=73 | |
150并发,持续半小时 | 单接口最长响应时间约6.8秒,rps=72 | |
200并发,持续10分钟 | 单接口最长响应时间约9.2秒,rps=60 | |
结论 | <120并发情况下,首页接口表现良好,单接口最长响应时间约5秒; |
创意页 | 场景 | 结果 |
100并发情况下,持续半小时 | lightmmend/suit/list平均响应时间为6.8秒,rps=91 | |
120并发情况下,持续半小时 | light-cecommend/suit/list平均响应时间为8.5秒,rps=91 | |
150并发情况下,持续20分钟 | lightcommend/suit/list平均响应时间达11秒,rps=103 | |
200并发情况下,持续1小时 | 创意页已经出现单接口相应时间(中位数、均值)较长的接口13秒,且出现一定的错误,rps=95,对出现当前情况的接口进行分析,接口响应体较大(接近20KB) | |
结论 | <=100并发情况下,创意页整体还可以,接口light-chain-customd/suit/list为当前页瓶颈接口; |
商品列表 | 场景 | 结果 |
200并发情况下,持续20分钟 | 平均响应时间1.4秒,rps=111 | |
400并发情况下,持续半小时 | 平均响应时间3.2秒,rps=111 | |
600并发情况下,持续1小时 | 平均响应时间5.3秒,rps=110,容器内存使用70%左右。 | |
结论 | <200并发情况下,服务器无压力,运行很好; |
商品详情 | 场景 | 结果 |
120并发,持续25分钟 | 接口light-chain-gds/detail为当前页面平均响应时间最长的接口,为5.6秒, rps=55 | |
150并发,持续25分钟 | 接口light-chain-goos/detail平均响应时间变长为7.3秒, rps=52 | |
200并发,持续25分钟 | 接口(light-chain-goods/app/goods/query/goods/detail)平均响应时间达10秒,对接口进行分析,接口响应体不算很大(约6.2KB),rps=51 | |
结论 | <=120并发情况下,商品详情(订单确认页)表现良好; |
下单页 | 场景 | 结果 |
30并发,持续半小时 | 平均响应时间4秒,rps=6.6 | |
40并发,持续半小时 | 平均响应时间5.4秒,rps=7 | |
50并发,持续半小时 | 平均响应时间6.7秒,rps=9 | |
60并发,持续半小时 | 平均响应时间8秒,rps=7.5 | |
100并发,持续半小时 | 平均响应时间12秒,rps=7.2 | |
结论 | <50并发情况下,下单接口随着请求增多,响应事物数增多,平均响应时间变长,整体表现稳定; |
定制编辑 | 场景 | 结果 |
100并发,持续半小时 | 页面响应平均响应时间最长的接口为2.4秒,rps=77,无错误 | |
120并发,持续半小时 | 页面响应平均响应时间最长的接口为2.9秒,rps=79,出现个别错误,设计师服务,定制服务 | |
150并发,持续半小时 | 页面响应平均响应时间最长的接口为3.6秒,rps=79,出现个别错误503 | |
结论 | <100并发情况下,服务响应良好; |
跳转定制页 | 场景 | 结果 |
80并发情况下,持续半小时 | 页面接口响应最长接口的平均响应时间为4.2秒,rps=38,少量报错503 | |
100并发情况下,持续半小时 | 页面接口响应最长接口的平均响应时间为5.2秒,rps=35 | |
120并发情况下,持续3小时 | 页面接口响应最长接口的平均响应时间为7.4秒,rps=44,少量报错503 | |
150并发情况下,持续半小时 | 页面接口响应最长接口的平均响应时间为6秒,rps=36,出现周期性报错 | |
结论 | 80并发情况下依然出现503报错,需要调研具体原因 |
xxxxxxxxxx具体细节!!!!