今天松勤软件测试给大家带来一套完整的性能测试实操流程,就以大家耳熟能详的电商项目来进行示例。现在就花个5分钟,认真看一下吧!
一、核心业务梳理
做一个项目的性能测试,首先得梳理出哪些业务需要进行性能测试。这个过程有一个前提就是:要对测试的对象(项目)熟悉。熟悉到什么程度呢?明确知道该项目的行业,业务和所有的功能。对电商项目来说,大家肯定都知道电商的业务是什么,比如登录,搜索商品,浏览商品,下单。其中下单这个里面又可以分为秒杀,限时抢购等不同的功能。所以要根据项目的业务梳理出要做性能测试的业务:
在进行业务分析的时候,系统的业务功能是可用的。也就是说需要通过基本的功能测试。而且需要根据项目的核心业务(需求明确有性能要求的业务),高频的业务(不需要需求指明也应该实现高性能的),基础业务(比如登录这样的业务)的划分,根据优先级来进行性能测试。
二、设计测试场景
这里有的人会称之为:场景建模。意思就是根据多少用户在(多少)时间内做(什么)事情。当然其结果肯定是希望通过测试。比如秒杀业务。根据项目的要求设定为 1000万的用户在整点进行库存为500的秒杀,先到先得。
当然整个项目来说不可能只有一个业务需要性能并发,所以在熟悉项目为前提的情况下,需要项目中所有需要测试的业务进行如此类的设计。
在设计的同时 ,还要确认该数据的来源,比如整点抢购首先需要用户登录,那么用户的数据怎么获取,是参数化还是直接从数据库读取。然后整点抢购的业务是否需要登录的信息,比如token来传递。这些都需要在这里进行统一的设计和管理。
三、实施压测
第一步要选择相应的平台或者工具。本文以Jmeter工具讲解。
第二步要设计并发量,线程数,循环数。请求参数设置,是否需要二次开发,或者是否需要链接数据库读取数据等。
第三步设定压测方式。如单机接口压测、单机多接口压测、单机混合场景测试、多节点测试等等模式。具体需要根据项目的部署和需求来决定。操作上来说难度也不相同,需要掌握相关的技能。
四、性能瓶颈分析和调优
1、性能分析
性能瓶颈分析一个复杂的话题,性能受系统架构设计、应用场景、业务逻辑、编程语言及采用的框架影响,简单来说可以从以下几个方面考虑:
①、客户端测试结果:即通过生成负载来观察被测系统的性能表现,比如通过对TPS、RT等指标的监控,从请求发起端到OS端层层剖析,从而找到系统性能瓶颈。
②、服务端硬件配置和环境:通过监控各硬件及操作系统相关指标(CPU、Memory、磁盘I/O、网络)来分析性能瓶颈。
③、测试人员的经验:即通过性能表象结合工作经验做快速排除,确定可能存在瓶颈的局部所在,快速修改验证,避免大而全的全面分析带来的耗时,提高效率。
2、性能调优
性能调优从‘降低响应时间’、‘提高系统吞吐量’、‘提高服务的可用性’三个方面进行调优。
性能优化的目的是:在保持和降低系统99%RT的前提下,不断提高系统吞吐量以及流量高峰时期的服务可用性。