性能测试流程

性能测试流程

(部分内容有转载,供软件测试的同行们学习借鉴)

性能测试:利用工具模拟大量用户操作,验证系统承受的负载情况。
性能测试的目的:找到潜在的性能问题或瓶颈,分析并解决;找出性能变化趋势,为后续扩展系统提供参考。

性能测试的大概流程

性能需求分析

性能需求分析是整个性能测试工作开展的基础,在这一阶段,性能测试人员需要与需求人员(客户)、领导及项目相关的人员进行沟通,同时收集各种项目资料,对系统进行分析,确认测试的意图。当然,还需要客户对性能的态度。
  测试需求分析阶段的主要任务是确定测试策略和测试范围。策略主要根据软件类型以及用户对系统的性能的需求来定,测试范围则主要分析系统的功能模块进行调研与分析。最终确认明确的需求。

性能测试计划

 确定明确的需求之后,我们要做的工作就是制定性能测试计划。对性能测试过程中所有需要工作制定与规划。

测试计划的大体内容:
  项目的简单背景描述,本次性能测试的需求与目的,性能需求分析的结果是什么。测试环境的准备,需要什么样的软硬件配置,网络状况登录。测试数据的准备,对于某些性能测试是需要事先准备测试数据的。
  测试的策略,前面进行需求分析的目的是制定测试策略,也就是设计符合需求的测试场景,需要对系统的哪些业务模块进行测试,如何进行?需要设计哪些场景以及设计这些场景的目的。
最后会明确一下人员配备,比如需要开发、DBA、运维都人员的参与协助,性能测试的时间安排。

测试环境搭建

测试环境搭建,分硬件环境与软件环境,硬件环境主要是向上级审批硬件配备,在某些大型性能测试,可能需要公司购置或租用硬件设备来进行。或者是将来原有设置进行调配与重组,这个时候就需要开发工程师的参与或协助。
软件环境的搭建对于开发人员来说应该毫无压力,比如常见的三大环境,微软的windows + IIS+SQL server 2005+.NET平台、windows/linux+tomcat/weblogic+mysql+java 、linux+ apache+mysql+PHP 等环境。当然身为性能测试人员,不仅也需要会搭建软件平台,更需要对每个平台中的部分有比较深入的了解。因为性能测试的分析并不是死盯着系统应用那一层。中间件、数据库、系统、硬件都有可能成为系统的瓶颈。
其实走到这一步进才需要引入性能测试工具,我们在日常的工作中往往是先选定好测试工具然后再分析需求,制定计划进行测试。这样我们在做性能需求分析的时候往往会往往会考虑所选的工具是否能实现,无法实现可能就放弃这个需求或改变这个需求。这样以某一工具为基础点做出的性能测试结果可能是不准确的。
工具的引入分为自行开发与引入市面上的现有工具。市面上的现有工具又分为收费与开源免费,各有各的优缺点。我们要做的是对需求进行分析,从成本,购买成本,开发成本,现有开源工具的二次开发成本,人员学习使用成本以及时间成本等。
在这里再强调一点,不是只有压力测试工具属于性能工具,在性能测试过程中所用到的工具都属于性能工具,如测试数据生成工具,性能监控工具等。

测试的执行

根据我们的性能指标和性能需求,设计好性能测试的场景和并发,编写好脚本进行性能测试,比如单场景的并发(如:1000/2000/3000个用户同时查看软文),多场景结合的并发(如:1000/2000/3000个用户同时查看软文和查看会展),单场景的负载(如:1000/2000/3000个用户同时查看软文30分钟),多场景结合的负载(如:1000/2000/3000个用户同时查看软文和查看会展 30分钟)性能测试的工具我们选择JMeter和loadrunner。

测试结果的分析
根据JMeter的聚合报告和各种监控插件生成的图表和loadrunner生成的性能测试报告及各种图标(比如:响应时间,tps,资源利用率。。。)进行分析,我们主要关注的性能指标有如下:
1)响应时间(RT):从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,这个过程所耗费的时间。
2)并发数:1并发数是指同时请求的客户数量;2并发数用于模拟用户的真实负载情况(并发情况是对系统最大的考验);3并发数=1/10的在线用户数
3)吞吐量:吞吐量指的是单位时间内处理的客户端请求数量,通常情况下,吞吐量用请求数/秒来衡量
4)资源利用率:资源利用率指的是对不同系统资源的使用程度,例如服务器的CPU,内存,网络带宽,IO的利用率等,资源利用率通常以占用最大值的百分比n%来衡量

对于性能测试结果的分析,这个需要性能测试工程师对整个被测环境的各种软硬件都要有深入的了解。当然,在这个过程中我们往往需要各个岗位人员的协助,开发人员、DBA等

软件硬件配置调整与优化

说的简单点这个环节属于系统调优阶段。这一项不是一个必须的环节。这个要看你本次性能测试的需求与目的。如果只是为了验证系统的能力的话。在分析完测试结果后就可以出性能测试报告了。
  对于我们测试人员来说,我们对一个系统进行功能测试的目的是验证系统功能是否是符合需求并可用的,但发现了缺陷之后是需要对缺陷进行跟踪和修复的,并不是把发现的缺陷写在报告里就完事的。当然,功能缺陷与性能缺陷存在着本质的不同。如果在性能测试过程中发现不满足需求的缺陷,进行调优是一个不可缺少的过程。
  如果要对系统进行调优的话,测试执行、结果分析、系统调优将会形成一个循环持续的过程。直到满足需求为止。

你可能感兴趣的:(测试,性能测试,软件测试)