性能测试知多少---性能测试计划

  上一章节中我们对性能的需求进行了分析,知道了测试对象,了解了测试需求,那么下面就需要制定一份详细的计划,来规划和指导性能测试工作的进行。为了使你对性能测试计划更清晰明白,这里以测试计划的格式来描述。

 

一.简介

 

  简介部分就不用过多描述了,无非项目的背景,进行此次性能测试的原因,以及性能测试覆盖的范围等等,几乎所有项目文档都在开端对项目进行简单的阐述。

 

二.性能测试需求

 

寻找的被测试对象和压力点

  要测试的对象不是凭空想象出来,而是经过分析与系统数据收集得到。下取几个典型的压力点

登录:对于一般的系统来说,登录是用户操作系统的前提,如果用户根本就登录不了,那么其它功能将毫无用处。例如网游戏,开新服的时候,玩家挤破了脑袋只为登录。

查询:查询一般比较消耗系统和数据库资源。搜索引擎的查询功能就是典型,如果你在输入框内输入内容,很久就得不到结果。我想被称为“互联网入口”的搜索引擎就不会存在。

交易:对于一些电子商务系统来说,交易过程的性能要求是很高的,如果交易过程消耗用户很长时间的话。我宁愿去超市买东西了。当然,除了交易速度外,对交易的成功率要求也是非常高的。不然,造成的损失也是不可估量的。

被测的系统应该是最重要的最基本的功能,也是用户使用最频繁的功能。

 

一般的性能要求包括:

系统容量:系统最大容纳多少个用户注册。

访问数:同时访问系统的用户数。

并发数:一个操作同时执行的并发数目,一个系统中应该有不同操作的并发数的组合(一般是有权限进行操作的用户)。

系统的最大用户数与最佳用户数:系统在承受的最大并发用户数量,系统在最佳状态下承受的并发用户数据。

响应时间:用户提交一个操作到得到响应的时间间隔。

吞吐率:系统每秒钟处理的TPS

  性能测试关键的一个因素就是压力,性能是在系统设计满足的最大压力下的性能。并发数要不小于系统正常运行的峰值,数据总量不小于系统正常运行3个月的数据量。

  在描述并发用户数目时,总是会带有相应的时间段限制。系统的性能指标实质上应当使用单位时间内系统处理请求的个数以及请
求响应时间描述。单位时间内能处理的请求个数就是系统的业务吞吐量。虚拟并发用户的数量可以使用如下的公式换算: (真实用户数×每个真实用户请求
数)/(总请求响应时间+真实用户总思考时间)=(虚拟用户数×每用户请求个数)/(总请求响应时间+虚拟用户总思考时间)=吞吐量。

 

三.测试环境

 

这里的测试环境主要指的软件硬件环境和网络环境。

  笔者认为性能测试最好在一个独立的环境内进行,这样不会受到外界的干扰,能够保证测试的数据是独立有效的。如果现你对某个已经上线的网站进行压力测试,那么你得到的数据不是独立的,因为你在做压力测试的时候,其它散户也在访问系统。

软件环境:

  这里的软件环境主要指项目运行的环境,比如采用什么样的操作系统、中间件、和数据库。

硬件环境:

  这里的硬件环境除了主要包括主机内部部件,cpu、内存、磁盘以及主板、网卡等,传输介质和路由器也应该考虑在内,

网络环境:

  网络环境除了考虑测试机与被系统服务器在一个局域网中进行,还应该保证这个网络的独立性。如果在在性能测试的过程中,其它机子也在消耗着路由器资源。那么路由器也会影响到数据库的传输速度。

 

 

四.数据准备

 

  在很多时候,我们是要准备测试数据的,例如系统不允许相同用户的重复登录,那么必须要生成合法的用户数据。有时要对系统
进行查询测试,只有在系统有一定数据量进才能验证出系统的真实性能。一个数据库中有两条数据和有两千万条数据,同相一条查询操作,对系统造成的压力是完全
不一样的。

系统所需数据的分析可以参考以下方式:

  历史数据分析有助于数据量级的确定。从历史数据入手,找出高峰期数据量。

  从其他相似或者相同系统入手,进行数据分析,找出高峰期数据量。

  无历史或者相关系统可以参考的时候,就要对系统的性能数据进行估算,包含系统容量,并发数等数据,估算以后给相关人员进行评审或者修订以后,按照大家同意的性能指标进行测试。

…………

  测试数据最好和真实数据相同,如果能够获得真实系统运行3个月的数据,我们就可以在此基础上进行性能测试。

  关于数据的生成,我们可以祝一个工具完成,如数据库数据生成工具,大小文件生成工具等。

 

五.测试工具

 

  前面已经介绍如何分析需求,需求确定下来之后,我们可以考虑引入什么样的工具适合性能需求。

  当然,在引入工具的时候除了考虑可以是否满足需求,还应该考虑工具的成本,这不单指工具的购买成本,还有测试人员对工具的学习成本。

  关于测试工具的选择,后面会单独有一章节介绍,这里就不细说了。

  如果你选择的性能测试工具不是足够的强大的话,你可能还需要其它的辅助的工具。如果jmeter利用badboy来录制脚本,更能提高脚本开发效率。在压力测试的过程中也可能需要性能计数器来记录软硬件的性能。如监控服务器cpu、内存的计数器,记录中间件日志的监控中工具,监控数据库性能的监控工具等。

 

六.测试策略

 

  对于一个特定的业务系统,用户一般会分散在一天的各个时间段进行访问。在不同的时间段中,用户使用业务系统的频率不同,
而系统的繁忙程度不同。在一些特定的条件下,可能出现短时间内用户集中访问某个业务系统的情况。例如对于公文处理子系统而言,可能就存在短时间内大量用户
查看并办理某条公文的情况。 在进行性能测试时,应当使用“考虑最坏情况的原则”。也就是应当在用户使用业务系统最频繁、对系统造成最大压力的情况下对系
统的功能进行测试,判断各功能和页面是否能够满足性能的要求,系统的响应时间是否过长。

  另一方面,系统性能的验证必须做到“覆盖全面”。虽然系统中各个功能的使用频率并不相同,一些功能的使用频率相对于其他
功能来说比较低,但是在进行性能测试和优化时,不能忽略这些功能,编制测试用例时也不能仅仅选择最常用功能。例如可能所有的用户都会访问我的通知列表,但
是一般只有5%的用户会使用通过系统设置模块查找某个用户的信息;但是在测试时,我们并不能因为查看用户信息功能的使用频率相对较少,而忽略掉这项功能的
测试。所以,这里进行系统性能测试时,对于不同业务,用户的访问比例应该做一个合理分配。

  在测试策略上,我们还应该考虑,同一个系统在不同硬件环境下的性能表现。从而让系统满足需求的情况下,硬件配置也能达到一个最佳的状态。过份的增加硬件来满足需求也是一种浪费。再说增加硬件设备不是能解决所有性能问题的。

 

 

七.人力与时间安排

 

  最后一条,就是要根据项目的进度要求以及规模,来进行人力与时间的安排。对于大型的性能测试,项目前期的需求调研,环境
的部署,工具的选购或开发,人员对测试工具的学习与使用,性能测试的后进行,后期数据的分析与调优。都需要人员安排的。有可以需要专业的,系统工程师、数
据库工程师、软件开发工程师、网络工程师以及性能测试工程师的共同参与配合完成。不是一个性能测试人员就可以全部搞定的。

  笔者听说,最牛x的性能测试,需要几个国家的十几个城市的性能测试团队同步时行。前期的准备工作就需要几个月的时间。如何把控性能测试的同步进行。后期测试数据的汇总与分析。是一个非常复杂的过程。这个例子有待考证,我想说明的是,对于大项目的性能测试,人员与时间安排也至关重要。

 

----------------------

  根据项目的不同,我们在做性能测试计划椒考虑的问题不仅仅上面这些内容,这一节所罗列的内容是基本需要考虑的因素。

时间: 2025-01-24 12:41:58

性能测试知多少---性能测试计划的相关文章

性能测试知多少---性能分析与调优的原理

最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库.从操作系统(CPU调度,内存管理,进程调度,磁盘I/O).网络.协议(HTTP, TCP/IP ),还是从应用程序代码,数据库调优,中间件配置等方面入手. 单一个中间件又分web中间件(apache .IIS),应用中间件(tomcat .weblogic .webSphere )等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功.但调优对于每一项的要求又不仅仅是"知道"或"会使用"这么

性能测试知多少---性能需求分析

需求分析是个繁杂过程,它并非我们想象的那么简单,而性能测试需求除了要对系统的业务非常了解,还需要有深厚性能测试知识.才能够挖掘分析出真正的性能需求.   如何获得有效的需求   1.客户方提出 客户方能提出明确的性能需求,说明对方很重视性能测试,这样的企业一般是金融.电信.银行.医疗器械等:他们一般对系统的性能要求非常高,对性能也非常了解.提出需求也比较明确. 曾经有一个银行项目,已经到最后的性能测试极端,因为数据库设计不合理,导致性能出现很大的问题,最终不得不把整合项目 作废,对于这样的项目,

《精通软件性能测试与LoadRunner最佳实战》—第2章2.3节性能测试计划

2.3 性能测试计划精通软件性能测试与LoadRunner最佳实战性能测试计划是性能测试的重要过程.在对客户提出的需求经过认真分析后,作为性能测试管理人员,需要编写的第一份文档就是性能测试计划,性能测试计划非常重要,在性能测试计划中,需要阐述产品.项目的背景,将前期的需要测试性能需求明确,并落实到文档中.指出性能测试可参考的一些文档,并将这些文档的作者.编写时间.获取途径逐一列出,形成一个表格,这些文档包括:用户需求规格说明书.会议纪要(内部讨论.与客户讨论等最终确定的关于性能测试内容)等性能测

性能测试知多少---性能测试流程

性能测试知多少---性能测试流程 看到好多新手,在性能需求模糊的情况下,随便找一个性能测试工具,然后就开始进行性能测试了,在这种情况下得到的性能测试结果很难体现系统真实的能力,或者可能与系统真实的性能相距甚远. 与功能测试相比,性能测试在技术层面具有更大的复杂性.在以往的测试流程中,性能测试只是测试流程的一部分,是系统或验收测试的一个可选项.但随着测试技术的发展.许多公司也单独把性能测试独立出来,建立专门的性能测试小组或团队.那么性能测试在实施的过程中也需要建立独立的流程与规范. 虫师提出了自己

性能测试知多少---系统架构分析

有些事儿一旦放一放就难再拾起来,突然发现<性能测试知多少>这个系列两月没更新,关键时我都不知道啥时候放下的,总容易被各种技术所吸引走,如饥似渴的想学更多的东西,这几天一直有朋友问我为啥不写了,我才意识,事情要一样一样做,我现在要把这个系列完成.   之前有对性能需求进行过分析,那篇主要从项目业务.背景等角度如何抽丝剥茧的将项目的需求抽离出来.在我们进行需求的时候也需要对被测项目的架构有一定的认识,如果不了解被测系统的架构,那么在后期的性能分析与调优阶段将无从下手.   简单系统架构介绍    

性能测试知多少---了解前端性能

我的上一篇博文中讲到了响应时间,我们在做性能测试时,能过工具可以屏蔽客户端呈现时间,通过局域网的高宽带可以忽略数 据传输速度的障碍.这并不是说他们不会对系统造成性能影响.相反,从用户的感受来看,虽然传输速度受用户带宽的限制.但我们可以通过很多技术来使用户想要 看到的页面更快的显示.这就web是前端性能. 如果考虑到web应用本身的特性,响应时间的构成应该会更加复杂.  Web应用的基础是超文本传输协议(HTTP)和超文本标记语言(HTML),HTTP协议本身是一种面向非连接的协议,HTML语言则

性能测试知多少---测试工具介绍

继续这个系列的学习,这一节重点介绍目前流行的性能测试工具以及如何选择适合项目的工具.在此之前,我已经对性能测试工具的原理与架构做了分析. http://www.cnblogs.com/fnng/archive/2012/07/31/2617546.html      性能测试工具的选择与评估                                                 在性能工具原理与架构一章中,我们了解到性能测试工具的原理通常是:通过录制.回放脚本,模拟多用户同时访问被测试系

性能测试计划VS测试实践

许多人说,面向过程的工作是成功的关键.虽然我非常赞成这个说法,但我总是纳闷为什么人们对于性能测试的7个要点并没有特别关注,而这7个要点能左右性能测试项目的成败. 当一个测试人员被分配到性能测试项目组,项目经理会让他/她做的第一件事就是着手准备测试计划.但在测试计划的准备阶段,测试经理及其属下在准备文档时通常会掉以轻心,文档的大部分内容要么是从以前的项目中复制过来的,要么是从网上找来的任意模板:对测试计划中提到的需求说明不予任何关注就直接转移到下一阶段了.不可否认的是:作为公司流程标准中的必须项,

性能测试知多少---并发用户

在做性能测试的时候,我们常常听到并发用户.响应时间.吞吐量专业术语,也许大家都理解,这里有一个理解的层次与深度概 念.最近有看断念<软件性能详解与案例分析>一书,看了他的讲解,原来我对这些术语的理解还是比较肤浅,其实,这里也主要受制于自己的知识面.所以,再拿 出来与大家重温一下.  ps:按照惯例先上个图,因为看纯文字的文章比较累!^_^     并发用户数 大家都知道我们的性能测试就通过工具模拟多用户对系统进行操作,对系统造成压力,来验证系统的性能(不太标准的解释). 好多人也简单的把性能测