编辑:[db:作者] 时间:2024-08-24 23:51:19
小A接到个网站设计需求,由于是感兴趣的领域,拿得手可愉快了。哼哧哼哧画了好几天原型,又拿着菜刀架在开拓脖子上猛干了几天,终于在一个月黑风高的晚上上线了这个网站。
然而过了不久,客服电话被打爆,所有投诉都是一句话“你xxx还让不让人用了!
一贯在加载是什么鬼?”于是,在第一百个投诉打来的时候,小A已经骑着电驴去送外卖了。而导致小A捡瓶盖的罪魁罪魁浏览人数过多,系统直接崩了。
至今,被采访的小A都表示“现在便是后悔,非常后悔,怎么就没盯下性能测试呢?”为了避免过早和小A合资送外卖,我们一起来学习下性能测试吧。
01 什么是性能测试?
性能测试是验证软件系统是否能够达到用户提出的性能指标,同时创造软件系统中存在的性能瓶颈,优化软件,末了起到优化系统的目的。
在产品上线前,我们无法知道用户数量,而且用户场景也存在不愿定性,一旦用户多了就可能整出各种幺蛾子,以是须要进行系统性能测试。
性能测试可以见告我们用户数量增加、系统负载增加时,系统能承受的并发用户数量,以及带宽是否够用、cpu是否够用、内存是否够用、硬盘速率是否跟得上等问题。
02 性能测试测什么?
性能测试的类型和划分网上有很多定义,我这取比较常见的几个
负载测试(Load Testing):负载测试紧张测试软件系统在不同负载下,性能指标是否符合预定指标,譬如在一定负载时,系统最大支持多少并发用户数,软件要求出错率等。压力测试(Stress Testing):压力测试是指在被测系统在一定饱和状态下,例如CPU、内存等在饱和利用情形下,系统能够处理的会话能力。说人话便是看看在极度情形下系统还能不能转得起来。容量测试(Volume Testing):确定系统最大承受量,譬如系统最大用户数,最大存储量,最多处理的数据流量等。03 作为产品须要关注的性能点有哪些?为了安稳端好产品经理的饭碗,我们须要关注这些性能点:
系统处理一个要求或一个任务耗时多少?系统最多支持多少用户访问、系统最大业务处理量是多少?系统性能可能存在的瓶颈在哪里?系统能否支持724小时的业务访问?04 性能测试的常见指标有哪些?上面叨叨了这么多,大家对性能测试和须要关注的内容该当有所理解了,那么作为产品,我们怎么对性能测试进行验收呢?为了防止被忽悠,这里我们须要理解一些性能的关键指标:
1. 外部指标吞吐量:每秒钟系统能够处理的要求数、任务数。相应韶光:做事处理一个要求或一个任务的耗时。缺点率:一批要求中结果出错的要求所占比例。
2. 内部指标从做事器的角度看,性能测试紧张关注CPU、内存、做事器负载、网络、磁盘IO等。由于我们是只用指手画脚,不用自己操刀的产品经理,我们只须要重点关注外部指标就可以了。接下来我们学习这些外部指标。
对付相应韶光,我们比较关注的是它的均值、中位值、P95值、P99值等。均匀值和中位值比较好理解,P分位值是什么意思呢?以P95为例,将相应韶光从小到大排列,顺序处于95%位置的值便是P95值。
系统吞吐量则有几个主要参数:QPS(TPS)、并发数、相应韶光:
QPS(TPS):每秒钟request/事务数并发数:系统同时处理的request/事务数相应韶光:一样平常取均匀相应韶光QPS(TPS)=并发数/均匀相应韶光
可以看出一个别系吞吐量常日由QPS(TPS)、并发数两个成分决定,每套系统这两个值都有一个相对极限值,在运用处景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力连续增大,系统的吞吐量反而会低落。
在低吞吐量下的相应韶光的均值、分布比较稳定,不会产生太大的颠簸。而在高吞吐量下,相应韶光会随着吞吐量的增长而增长,增长的趋势可能是线性的,也可能靠近指数的。当吞吐量靠近系统的峰值时,相应韶光会涌现激增。
上图便是吞吐量、相应时长、并发数几者的关系图。横坐标是并发数,绿线是CPU利用率,紫线是吞吐量,即QPS,蓝线是相应韶光。
05 测试报告长啥样?
理论终归于实践,能看懂测试报告,那读这篇文章的目的才算达到了。
1. 测试概述
1.1 测试目标
本次测试的目的在于探查XXX项目二期重构环境的系统业务处理性能,以及在高负载情形下的系统表现。
1.2 指标和术语
描述本次测试中涉及到的性能指标术语
2. 环境、工具
2.1 测试环境
做事器:
客户机:
2.2 测试工具
3. 测试方案
3.1 测试类型
本次性能测试将紧张采取以下几种测试类型:
基准测试:在小并发条件下,探测系统各性能指标表现,作为后续比对根本。压力测试:由于无法准确预估用户访问量,因此考虑利用压力测试方法。压力测试旨在通过不断 增加系统并发处理事务数,增加系统负载,直到系统到达性能瓶颈。以此推算出系统可承载用户和事务要求数。稳定性测试:将系统置于较永劫光高负载场景下,探测系统是否涌现稳定性毛病。3.2 业务模型
针对系统接口,究竟哪些须要被纳入压测范畴?不同事务该当以何种比例被调用,这是须要建模设计的,也是性能测试的难点之一。
通过对付项目架构和业务场景剖析,设计以下业务模型进行仿照和测试:
场景1:大略业务场景
场景2:稠浊业务场景
3.3 加密验签处理
由于系统对付所有事务要求都进行了加密验签处理,因此在本次性能测试中,须要对要求报文进行同等的加密和署名。处理逻辑如下:
利用APP同样的加密署名代码,导出jar包做为加密工具类利用jmeter前置处理器-beanshell处理器调用上述jar经办法实现要求参数加密将加密署名后的要求参数存储为变量,后续接口调用时利用3.4 压力梯度
对付3.2所述场景,分别进行梯度加压,从100并发开始,每次递增100并发数,直至到达系统瓶颈。
4. 测试结果
4.1 聚合报告
场景1-10并发-循环5次
场景1-500并发-循环1次
场景1-550并发-循环1次
4.2 系统吞吐量
场景1-550并发-循环1次
场景2-450并发-循环10次
4.3 资源占用率
最优负载条件下:CPU利用率
内存占用率
磁盘利用率
5. 剖析和建议
5.1 测试结论剖析
经由多次测试和数据报表剖析,可以得出如下结论:
当总体并发用户数为450-500时,系统具有最优性能表现;当事务并发数超过500时,事务失落败率整体上升,系统到达性能拐点。多事务稠浊条件下,系统顶峰TPS在90旁边,均匀吞吐量在13-18/s。在小压力条件下(10并发),最大事务相应韶光为查询用户信息事务的2042毫秒,均匀在600毫秒旁边系统。整体事务微不雅观相应速率较优。满负载条件下,登录具有最佳的性能表现,均匀相应韶光为7000-12000毫秒;查询用户信息事务性能较差,均匀相应韶光在30000-40000区间。满负载条件下系统整体微不雅观相应韶光较差。查询用户接口由于其利用极为频繁,建议进行SQL效率调优系统资源方面,内存占用率始终处于高位水平(90%以上),磁盘空间由于日志写入而不断被占用。5.2 问题
测试过程中创造了如下显著问题:
加密验签功能并未生效-现阶段任何署名均可通过验签。属于功能性问题,不影响性能表现。日志文件由于不断写入导致磁盘占满,建议调低系统日志级别,并做好定期日志备份。内存占用途于高位水平,须要进一步探查缘故原由。作者:阿宅的产品条记;"大众号:阿宅的产品条记
本文由 @阿宅的产品条记 原创发布于大家都是产品经理。未经容许,禁止转载。
题图来自Unsplash,基于CC0协议。
该文不雅观点仅代表作者本人,大家都是产品经理平台仅供应信息存储空间做事
本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/ktwx/33872.html
下一篇:返回列表
Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码
声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com