第三章 性能测试流程

3.1性能测试流程

3.1.1性能测试基本流程

性能测试从实际执行层面来看,测试的过程一般分为:

性能测试基本流程

3.1.2性能需求分析

       性能需求分析是整个性能测试工作开展的基础,性能需求分析做的好不好直接硬性到性能测试的结果。

       在需求分析阶段,测试人员需要与项目相关的人员进行沟通,收集各种项目资料,对系统进行分析,建立性能测试数据模型,并将其转化为可衡量的具体性能指标,确认测试的目标。

3.1.3性能需求分析的目标

①明确到底要不要做性能测试?性能测试的目的是什么?

②明确被测系统是什么?被测试系统的相关技术信息如:架构、平台、协议等。

③明确被测系统的基本业务、关键业务,用户行为。

④明确性能测试点是什么?哪些需要测,为什么?哪些不需要测,又是为什么?

⑤明确被测系统未来的业务拓展规划以及性能需求?

⑥明确性能测试策略,即应该怎么测试?

⑦明确性能测试的指标,知道测试出来的结果怎么算通过?

3.1.4性能需求分析方法

①系统信息调研

       指对被测系统进行分析,需要对其有全面的了解和认识,这是做好性能测试的前提,而且在后续进行性能分析和调优时将会大有用处,试想如果连系统的架构、协议都不了解,我们如何进行准确的性能测试?如果进行西鞥呢分析与调优?

系统信息调研

②业务信息调研

       指对被测试的业务进行分析,通过对业务的分析和了解,方便我们后续进行性能测试场景的确定以及性能测试指标的确定。

业务信息调研

③性能需求评估

       在实施性能测试之前,我们需要对被测系统做相应的评估,主要目的是明确是否需要做性能测试。

        如果确定需要做性能测试,需要进一步确立性能测试点和指标,明确该测什么、性能指标是多少,测试通过or不通过的标准?

      性能指标也会根据情况评估,要求被测系统能满足将来一定时间段的业务压力。

3.1.5性能需求评估

eg:判断是否进行性能测试

①业务角度

       系统时公司内部or对外?系统使用的人数的多少?如果一个系统上线后基本没几个人使用,无论系统多大,设计多么复杂,并发的性能测试都是没必要的,前期可以否决。

②系统角度

       如果一个系统采用的架构是老的系统架构(通常大公司都有自己的统一架构),只是在此框架上增加一些应用,其实是没有必要做性能测试,因为老框架的使用肯定是经过了验证的。如果一个系统采用的是一种新的框架,可以考虑做性能测试。

③数据库要求

       很多情况下,性能测试是大数据量的并发访问、修改数据库,而瓶颈在于连接数据库池的数量,而非数据库本身的负载、吞吐能力。这时,可以结合DBA的建议,来决定是否来做性能测试。

④系统特殊要求

       从实时性能角度来分析,某些系统对响应时间要求比较,比如餐饮系统,系统的快慢直接影响客户的感受,这种情况就有作并发测试的必要,在大并发量的场景下,查看这个功能的响应时间。


3.2性能测试准备

3.2.1性能需求分析方法

确定性能测试点:

①关键业务:确定被测项目是否属于关键业务,有哪些主要的业务逻辑点,特别是跟交易相关的功能点。例如:结算,扣款等接口。

②日请求量:确定被测项目各功能点的日请求量(可以统计不同时间力度下的请求量如:小时、日、周、月)。如果日请求量很高,系统压力很大,而且又是关键业务,该项目需要做性能测试,而且关键业务点,可以被确定为性能点。

③逻辑复杂度:判定被测项目各功能点的逻辑复杂度。如果一个主要业务的日请求量不高,但是逻辑很复杂,则也需要通过性能测试。原因是,在分布式方式的调用中,当某一个环节响应较慢,就会影响到其他环节,造成雪崩效应。

④运营推广活动:根据运营的推广计划来判定待测系统未来的压力。未雨绸缪、防患于未然、降低运营风险是性能测试的主要目标。

⑤被测系统的性能不仅能满足当前压力,更需要满足未来一定时间段内的压力。因此,事先了解运营推广计划,对性能点的制定有很大的作用。

3.2.2性能测试准备

①测试环境准备

       系统运行环境:测试环境,有些时候需求比较多,做性能测试担心把环境搞垮影响其他的功能测试,可能需要重新搭建一套专门用来做性能测试的环境。

       执行机环境:这个就是用来生成负载的执行机,有时候甚至需要一套执行机集群。

②测试场景设计

       根据性能需求分析来设计符合用户使用习惯的场景,场景设计的好不好直接影响到性能测试的效果。

③性能工具准备

        负载工具:根据需求分析和系统特点选择合适的负载工具,比如LoadRunner、Jmeter等。

       监控工具:准备性能测试时的服务器资源、JVM、数据库监控工具,以便进行后续的性能测试分析与调优。

④测试脚本准备

       如果性能测试工具不能满足被测系统的要求或只能满足部分要求时,需要我们自己开发脚本配合工具进行性能测试。

⑤测试数据准备

        负载测试数据:并发测试时需要多少数据?

       DB数据量大小:为了尽量符合生产场景,需要模拟线上大量数据情况,那么要往数据库里提前插入一定的数据量。这可能需要花费一些时间,特点是关联系统较多,逻辑复杂的业务可能同时设计多张表。

3.2.3性能测试执行

①人工边执行边分析

       通常我们做性能测试都是人工执行并随时观察系统运行的情况、资源的使用率等指标。这个过程可能会很漫长,需要不断的调整系统配置或程序代码来定位问题。

②无人值守执行性能测试

       无人值守值最理想化的目标,无人值守不是说没有人力介入,而是把人为的分析和执行过程分离,执行过程只是机器服从指令的运行而已。

       通常测试环境在白天比较繁忙,出现性能问题及定位难度较大且影响功能测试。

       所以一般性能测试最好在晚上或周末进行,在相对较安静的条件下有利于测试结果的稳定性。

3.2.4测试报告与总结

①性能测试报告是性能测试的里程碑,通过报告能展示出性能测试的最终结果,展示系统性能是否符合需求,是否有性能隐患。

② 性能测试报告中需要阐明性能测试目标、性能测试环境、性能测试数据构造规则、性能测试策略、性能测试结果、性能测试调优说明、性能测试过程中遇到的问题和解决方法等。

③性能测试工程师完成该次性能测试后,需要将测试结果进行备案,并作为下次性能测试的极限标准,具体包括性能测试结果数据、性能测试瓶颈和调优方案等。

④同时需要将测试过程中遇到的问题,包括代码瓶颈、配置项问题、数据问题和沟通问题,以及解决办法或解决方案,进行知识沉淀。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容