基于Jmeter的web系统后端接⼝压测报告
⽂章⽬录
⼀、测试⽬的
针对uat环境的⽤户并发量和系统瓶颈,都是未知的。
本轮压⼒测试,抽取部分代表性查询接⼝,主要是为了测试后台系统UAT环境主要接⼝吞吐量和响应时间,初步出系统的瓶颈。
⼆、测试内容
压测接⼝清单
api/nonmetalPla/list(pla(post))
api/warehouse/searchCarType (查询基础数据(post) )
api/dict/findDictByParentCode (根据⽗类编码查询下级字典(post) )
压测数据库查询m_dict数据 (jdbc连接 )
三、测试环境
环境机器型号CPU操作系统内存磁盘
应⽤服务
器linux虚拟web后端是指什么
机
CPUIntel® Xeon® Gold 6132 CPU @
2.60GHz
4个单核四线程
CentOS Linux release 7.5.1804 (Core)
单机
total:8G ,可⽤内存: free+buffers/cached
= 2.3G
tatal:26G used:
15G
压测机器宏碁4750单个双核四线程win10 单机8G total:8G used:3G
四、测试⽅法
4.1、压测⼯具和指标
类别说明
压测⼯具apache-jmeter-5.1.1(单台win环境)
压测性能相关参数
协议: http
⽅法: get/post
并发数 、总请求数、吞吐率(TPS)、响应时间、错误率
4.2、测试时间
第⼀轮压测:
测试时间:9:00-12:00(⼯作时间) ,内⽹环境压测(VPN内⽹,⾮完全内⽹)
针对每个接⼝分别执⾏并发数10、30、90、270并发数执⾏120秒
第⼆轮压测:
测试时间:7:50-09:30(⼯作时间) ,内⽹环境压测(VPN内⽹,⾮完全内⽹)
针对每个接⼝分别执⾏并发数10、30、90、270并发数执⾏120秒
第三轮压测:
测试时间:09:00-09:30(⼯作时间) ,内⽹环境压测(VPN内⽹,⾮完全内⽹)
针对pla接⼝30并发数执⾏120秒
五、统计指标
进⾏压⼒测试,并对产⽣的每秒TPS,响应时间(min,ave,max)及错误率进⾏统计
六、测试结果
6.1、第⼀轮压测
时间:9:00-12:00(⼯作时间)
6.1.1、聚合报告
接⼝名称数据
量
并
发
数
持续
时间
samples average min max median90%Line95%Line99%Line error%tps(s)received(kb/s)sent(kb/s)
pla(post)limit
10
120s
api/nonmetalPla/list105113233732458191345408827042.419214341672.4520921.91383241 api/nonmetalPla/list3053236731468692543119615612619043.967753131733.50595422.71380996 api/nonmetalPla/list9062241737161264471262323844458283049.349825561945.70362125.49419699 api/nonmetalPla/list270758642981554429033597611944515606059.222133752334.93672430.59424683
查询基础数据(post)limit 10
/api/warehouse/searchCarType10260245911334583936929371496021.52743881078.60036611.28929163
/
api/warehouse/searchCarType3044568051057980670136917122686036.96943551852.29868919.38729186 /api/warehouse/searchCarType9050442150172118221781344142776622041.0926542058.88643221.54956562 /api/warehouse/searchCarType2706504502215479084399781001022217749051.14373562562.48095626.82049416
根据⽗类编码查询下级字典(post)limit 10
/api/dict/findDictByParentCode1065218422251268115052617508465420 5.201643464 3.682313378 2.722735251 /api/dict/findDictByParentCode3019421861267114471489346748966968015.5833734610.104843728.156922043 /api/dict/findDictByParentCode9054641986284232151604284052196941043.7266921728.9746886222.88819043 /api/dict/findDictByParentCode27016931192172146321505335650216597 1.07131.626841188.6504563268.13092412
jdbc连接limit 10
压测数据库查询m_dict数据1017390661013343401161793120145.2145.460压测数据库查询m_dict数据30189091811081651183514748450157.5157.780压测数据库查询m_dict数据901505270913120105381106156666480.48125.1124.780压测数据库查询m_dict数据270193911681131084815172593323277070158.1647635158.470 6.1.2、接⼝压测实况图(90并发)
下⾯抽取并发量为90的情况下各个测试接⼝的资源情况,分别是内存和cpu状况图、响应时间、tps
⼀、api/nonmetalPla/list((post))
⼆、/api/warehouse/searchCarType (查询基础数据(post) )
三、/ api/dict/findDictByParentCode (根据⽗类编码查询下级字典(post) )
四、压测数据库查询m_dict数据 (jdbc连接 )
6.1.3、第⼀轮压测分析
带宽、内存、内存、磁盘等指标在⽹页查看⼀直表现的⽐较正常,在命令⾏直接进去服务器查看,cpu有超过100%的⼏次状况。
并发数在90以内时,接⼝响应时间基本能保证在2s内
普通数据库查询接⼝tps有提升空间,pla接⼝在10-270的并发下均能保持40tps以上
warehouse查询(post) 接⼝相⽐pla接⼝仍较慢,可做进⼀步优化,考虑字段过多,sql查询⽅⾯的问题
根据⽗类编码查询下级字典(post)接⼝耗时⾮常严重,需要⽐较优先优化,考虑索引和sql⽅⾯的问题
数据库压测tps只有120-150左右,需要进⼀步提⾼,考虑服务器性能⽅⾯和mysql配置问题,在⾮⼯作时间有尝试压测对于接⼝耗时较长的情况,⽬前引⼊了redis,但是⽬前⽤的地⽅很少,redis⼏乎闲置,接⼝可以考虑结合使⽤redis
⼀次压测数据不⼀定是准确的,有主要以下⼏点
服务器⽹络变化
服务器性能改变
压测主机⽹络变化
DB数据量的变化
压测过程中部分请求 error / 超时影响
6.2、第⼆轮压测
压测时间:07:50-9:30(⼯作时间)
6.2.1、聚合报告
接⼝名称数据
量
并
发
数
持续
时间
samples average min max median90%Line95%Line99%Line error%tps(s)received(kb/s)
pla(post)limit
10
120s
api/nonmetalPla/list10TOTAL4038296959299233496630934033.498419651330.28636217.3053359 api/nonmetalPla/list30TOTAL513469876788260292111073601042.688351751695.23615622.0528692 api/nonmetalPla/list90TOTAL58301873157125181717229335155551047.524720191887.29760424.5513447 api/nonmetalPla/list270TOTAL51306483459265155727101251191116345040.132********.73308620.7324431
basedata(post)limit 10
/
api/warehouse/searchCarType10TOTAL427245194178984266156768530.00234082422.0954********.37272211.5600395 /api/warehouse/searchCarType30TOTAL3028118618744921120158618072567025.128839242325.84094313.1779166 /api/warehouse/searchCarType90TOTAL21465096264379613563106781495024020016.605280261536.9289588.70804248 /api/warehouse/searchCarType270TOTAL2916117792575532010512170292001827637021.096496941952.62088611.0632996
根据⽗类编码查询下级字典(post)limit 10
/api/dict/findDictByParentCode10TOTAL31344371932562837562450261.1586499392.5030881136.700230 /api/dict/findDictByParentCode30TOTAL693395121712042581322150577.6083969868.1048074302.341895 /api/dict/findDictByParentCode90TOTAL873351222214538942192745000727.28862541093.063666380.690139 /api/dict/findDictByParentCode270TOTAL9465533922612529645149613310786.7134321182.374973411.795312 limit
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论