XXXXAPP-压测报告
目录
1. 测试目的
2. 测试范围
3. 环境准备阶段
3.1 测试环境信息
3.2 测试数据准备
3.3测试工具准备
4. 性能测试执行阶段
4.1理论场景设计
4.2具体实现设计
5. 性能压测结果收集情况
6. 压测详细记录
通过负载测试评估当前系统在压测环境的服务器端性能情况;
负载测试:模拟实际软件系统所承受的负载条件的系统负荷,通过不断加载(如逐渐增加模拟用户的数量)或其它加载方式来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等,以检验系统的行为和特性,以发现系统可能存在的性能瓶颈。
本次压测结合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 |
*运维同学申请资源;
环境信息 |
配置 |
备注 |
ECS实例:light-chain-stress-01 |
4C*16G 50G存储 1Mbps公网带宽 |
部署业务相关服务 |
ECS实例:light-chain-stress-02 |
4C*16G 50G存储 1Mbps公网带宽 |
部署公共相关服务 |
共享带宽 |
5Mbps |
|
ALB |
按量付费 |
测试数据:从生产上数据同步到测试数据库,达到数据量一致的目的;
参数化数据:不同类型的数据处理逻辑有差异时,需要通过测试数据的多样化来提高性能测试代码的覆盖率,而参数化是最常见的方式;
*测试过程中使用的工具
类型 |
工具 |
备注 |
脚本工具 |
Pycharm、Postman |
|
监控工具 |
Locust |
吞吐量、响应时间、报错率 |
Nightingale |
主机和容器监控 |
|
Grafana |
Mysql、Redis和ALB带宽监控 |
本次压测策略参考负载测试,通过逐步加压的方式,寻找当前压测服务环境相对稳定支持的并发用户数、接口短板或系统极限;
并发用户数加压参考曲线:
通过单个页面并发增加,来找出每个页面首先出现瓶颈的接口
登录 |
场景 |
结果 |
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具体细节!!!!