对于那些实时和嵌入式系统,软件部分即使满足功能要求,也未必能够满足性能要求,虽然从单元测试起,每一测试步骤都包含性能测试,但只有当系统真正集成之后,在真实环境中才能全面、可靠地测试系统性能,系统性能测试就是为了完成这一任务。
性能测试经常和压力测试一起进行,而且常常需要硬件和软件测试设备。这就是说,
在一种苛刻的环境中衡量资源(比如处理器周期、内存)的使用常常是必要的。外部的测
试设备可以监测执行的间歇,当出现情况(比如中断)时记录下来。通过对系统的检测,
测试者可以发现导致效率降低和系统故障的情况。
为记录性能需要在系统中安装必要的测量仪表,或是为度量性能设置相应的软件或程序。大多数性能测试,特别是基于c/s结构的应用软件的性能测试只有借助于测试工具才能完成,同时,也需要测试工程师灵活地运用才能让测试工具充分发挥作用。
例如,如果对一个c/s结构的网络实时在线培训系统软件进行测试。系统性能测
试的主要焦点在各种情况下服务器的cPu及内存的使用和占用率、客户端的各种响应
时间。先让客户端与服务器全部采用HTTP的连接方式,建立表6—5,进行测试并取
得数据。
测试过程中,压力的小断增加在系统性能上的表现越来越明显,加载过程中每到一个测试点时注意让系统半稳地运行一段时间后再获取数据,否则加压的操作可能会影响数据的可靠性。表中1×5表示的是1个课程,5个联机用户;10x 5表示10个课程,每个课程有5个在线用户。在表中,同样是250个用户,1×250与50×5的性能表现差别很大。也可以获得TcP等连接方式下的数据,然后根据这些数据生成各项指标的性能曲线图,如图6.8所示为cPu使用率的对照曲线图。
根据这些图表能很清楚地了解系统的性能状况。在州么样的压力下系统达到_最佳状况,什么压力是系统的极限。丈际E在做性能测试的同时也完成了部分容量测试。
综上所述,压力测试、容量测试和|生能测试的手段和方法很相似,有时可以交织在一
起进行测试。压力测试的重点旮十发现功能性测试所不易发现的系统方阿的缺陷:容量测试和性能测试更着力于提供性能与容量方面的数据,以供软件开发商参考,改进或进行广告宣传。