全面解读性能测试的要点

发表于:2009-05-31来源:作者:点击数: 标签:性能测试解读要点
核心提示:性能测试是用来测试软件在系统中的运行时能力,特别是针对实时系统和 嵌入式 系统。性能测试可以在各个测试阶段进行,但进行的目的各有不同,有诊断性质的,有调优性质的,还有检测性质的。但对于一个系统真正的性能测试只有在系统 集成测试 阶段执
核心提示:性能测试是用来测试软件在系统中的运行时能力,特别是针对实时系统和嵌入式系统。性能测试可以在各个测试阶段进行,但进行的目的各有不同,有诊断性质的,有调优性质的,还有检测性质的。但对于一个系统真正的性能测试只有在系统集成测试阶段执行。

1.什么是性能测试

性能测试是用来测试软件在系统中的运行时能力,特别是针对实时系统和嵌入式系统。性能测试可以在各个测试阶段进行,但进行的目的各有不同,有诊断性质的,有调优性质的,还有检测性质的。但对于一个系统真正的性能测试只有在系统集成测试阶段执行。性能测试的目的一方面是为了检验系统的性能是否符合要求,另一方面也是为产品的宣传提供有力的数据。

2.性能测试的分类

a。一般意义的性能测试

这类的性能测试一般单指响应时间的性能测试,如正常用户操作时客户端的响应时间

b。强度测试

强度测试需要在反常数量、频率或资源的方式下运行系统,以检验系统能力的最高实际限度,它要求软件必须被强制在它的设计能力的极限状态下运行。

c。软件可靠性测试

测试要需持续一夜,一周,或者几周的时间,目标是发现短序列测试遗漏的错误。这种测试经常发现的错误包括越界指针,内存泄漏,栈溢出,超过两个特性之间的错误交互等,也称长序列测试,持久测试,耐力测试。一般的软件平均无故障时间是一个最为重要的可靠性指标。

3.性能测试的方法

a。测试人员与应用交互的过程中,应该知道应用的响应是否缓慢,这些BUG是基于常识性知识的。不指出问题的所在,而只是警告问题的存在

b。观察测试

这种测试使用某些工具给出确切的数据,如使用秒表等工具以便给出更为清晰的概念

c。第三方测试

使用专业的性能测试工具

4.性能测试策略

a。识别系统组件

画一个网络结构图阐明应用程序的结构,包括所有的系统组件,如:客户端机器,网络,中间件,服务器等等。

b。描述系统配置

客户端机器的配置(硬件、内存、操作系统、开发工具等)

数据库类型,网络服务器种类

中间件配置

通信设备的吞吐量

c。分析使用模式

定义系统怎样有代表性的使用,决定哪几个功能对于测试是最重要的、考虑谁用系统、各种类用户的数目、各用户的常用任务、另外也要考虑影响系统反应时间的背景负载(所谓的背景负载就是在执行测试任务之前,运行于系统之内的进程所带来的负载)

d。确定任务分布状态

分析任务分布决定什么时候有峰值的数据活动,确定系统最大压力产生的时间段,依据该时间段设计测试策略

如显示的10点到12点,登录事务就由220增加到250,下午2点下降到210,那么10点到12点这个时间段就是一个高峰,对方案进行

设计的时候就要考虑到这个因素。设计测试数据应尽量遵从从小到大的原则。如:

要测试一个系统能够承受登录时的最大并发数,就要采取先假设10个,然后到20,然后到30,随着数字的增加就要减小增加的幅度,

也许是500、501、503这样一直下去。才能准确的确定真正的能够承受的最大并发数。

反面教材:

没有针对性的性能测试场景

例一:

针对各个条件的查询各自录制了一个脚本,然后又单独执行了个脚本5~10次。

结果:没有针对性,其本身目的是为了测试服务器所能承受的负载,这种测试场景完全不能达到我们当初的目的。

例二:

oracle两层数据库结构应用程序,但取数据的时候是从文件服务器而非数据库服务器读取,虽然也涉及到了数据库的一些操作。

结果:测试结果良好,但实际测试场景并不能完全反映读取数据时文件服务器的压力情况。

原文转自:http://www.ltesting.net