一个压力测试的流程:
1、明确测试目标
2、制定测试计划
3、实施测试,收集参数
4、分析测试结果
5、给出优化方案
一 、明确测试目标:如果是客户的需求,那需要向客户确认,有清楚的性能指标参数,测试时就是保证系统达到该指标并能良好运转,即压力测试。如果是自己的系统需要有一个评估,那就需要完整的得到该系统的几个临界点,拿到完整的性能曲线,从而来分析部署情况,即为性能测试。不管是哪个,知道了需求,才能制定计划。
性能测试的目标是发现重大的系统瓶颈。你可以想象一个系统由一系列的瓶颈组成;发现并改善一个瓶颈往往会在其他地方产生一个新的瓶颈。例如,我曾为一运行微软Windows CE的器件部门工作。我们发现的第一大性能问题体现在某一具体硬件环境下的内存管理中。我们把问题分离出来,改善了内存分配的效率。尔后再次运行我们的测试,又找到了一个新的瓶颈,这次体现在网络吞吐量上(throughput)。解决了这个问题后,我们接着又为下一个瓶颈改善而工作,然后再下一个,直到整个系统都达到了性能目标。要记住的是:关键在于要尽早订立性能目标,否则你可能不知道什么时候该停止性能测试。
二、制定测试计划:确定使用什么工具,着重哪些参数,设置线程数,方法执行次数,执行时间,是否多个接口同时进行测试等等。
三、实施测试,收集参数:选一个施压工具,来向部署好的服务发起高并发请求,同时关注和收集性能参数。这个是我们花费时间最多的地方。通常该阶段需要反复执行,来得到想要的数据。通常来说,我们可以使用JMeter LR AB 自己写多线程等各种方式,之后介绍一下JMeter。
四、分析测试结果:即根据上一节的参数介绍来进行参数分析。
五、给出优化方案:如果是代码逻辑耗费cpu,就优化算法;如果是redis等数据库耗时,就增加节点,减少读取,读写分离,使用内存等;如果是外在条件限制,则与外部们沟通问题,共同优化等等。
一般来说,压力测试有几大步骤:确定测试对象,即进行压力测试的机构的资产/负债组合,比如某银行的房地产开发贷款:识别影响该组合的主要风险因子,比如房价:设计压力情景,比如房价下跌的幅度:计算压力情景下相关指标的可能变动:根据测试结果,有针对性地制定相应政策,如可针对某类可能出现的风险,制定应急预案。
压力测试有着重要的功效。首先,压力测试是金融稳定性评估的重要工具。在总结1998年亚洲金融危机经验教训的基础上,IMF和世界银行于1999年5月联合推出了“金融部门评估计划”,通过压力测试、金融稳健指标、标准与准则评估三个分析工具,对各经济体的金融体系进行全面评估和监测,其中最核心的工具即为压力测试。
其次,压力测试在监管机构评估监管资本中有着重要的应用。2004年发布的《巴塞尔新资本协议》对商业银行压力测试作出了相关规定。新资本协议的第一支柱要求商业银行必须对相关风险参数进行压力测试,第二支柱要求商业银行进行内部资本充足评估程序时,要进行前瞻性的压力测试,以识别可能的不利事件出现时需要增加的资本额,监管当局根据测试结果,要求银行持有一定数量的超额资本。
再次,压力测试也是银行自身进行风险管理的重要工具。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)