效率测试,效率指的是在规定条件下,相对于所用的资源的数量软件产品可提供适当性能的能力,资源可能包括其他软件产品或系统的软件和硬件配置,以及其他相关资源(如打印纸和磁盘等)。效率测试主要关注产品的时间和资源相关的特性,时间相关特性是指在规定条件下软件产品执行其功能时,提供适当的响应和处理时间,以及吞吐量的能力。例如,用户打开某个网页需要等待的时间。资源相关特性是指在规定条件下软件产品执行其功能时,使用合适数量和类别的资源的能力。例如,用户在执行相关操作时,系统的内存和CPU的变化情况。
效率测试的主要类型
效率测试主要关注产品的时间特性和资源特性,根据这两种特性效率测试可以包括不同的测试类型,如性能测试(Performance Test
)、负载测试(Load Test
)和压力测试(Stress Test
)。
(1)性能测试
性能测试主要评价软件产品的性能是否与具体的性能需求一致,如对访问速度的性能需求或内存使用情况的需求。特定性能测试的关注点在于软件产品在规定的时间内和特定的条件下响应用户或系统输入的能力。不同的性能的度量方法取决于不同的被测对象,对于一个单独软件组件,其性能可以根据CPU主频来判定;对于带客户端的软件产品,其性能则根据系统处理特定用户请求的响应时间来判定;对于那些由多种组件(如客户端、服务器和数据库)构成的软件产品,则要执行各组件之间的性能测试。
软件产品的性能对用户是否会持续使用影响很大,下表所示是一个用户对访问一个独立页面时等待不同时间的态度分布。
可以看到,当页面加载时间在10秒时,有84%的用户愿意等待;当页面加载时间达到30秒时,只有5%的用户愿意等待。
表中的数据考虑了网络的延迟。如果在测试环境中整个网络是被测试系统独占时,对系统性能的要求要高得多。当然对于愿意等待的时间每个用户的承受范围不同,下面是一组关于响应时间的性能需求描述。
- 对于多媒体交互系统,在90%的时间内系统响应时间应该不超过0.1秒。
- 对于每个用户同时只有一项任务的在线系统,在90%的时间内系统响应时间应该不超过0.5秒。
- 对于每个用户同时有多个任务的在线系统,在90%的时间内系统响应时间应该不超过1秒。
性能测试关注的是软件产品性能是否和具体的性能需求相一致,当系统性能超过性能需求时,软件产品的表现并不是测试人员关心的重点。例如,性能需求中要求支持最大同时在线用户为5000个,那么在性能测试过程中重点测试软件产品是否能满足这个需求。当有5000个用户同时在线时,性能测试需要关注整个软件产品的运行是否符合要求;当在线用户超过5000个用户时,软件产品的表现行为并不是性能测试需要关注的。
(2)负载测试
负载测试是一种通过增加负载来评估软件产品性能的测试方法,如通过增加并发用户数和(或)事务数量来测试软件产品能够承受的负载。负载测试时,软件产品的负载逐渐增加,而不是一步到位,因为需要观察软件产品在多种不同的负载情况下是否都能够正常工作。
下图所示为某网站随着用户数量的增加相应响应时间的增加趋势。
可以发现随着用户数目的增加,网站的响应时间也随之增加。当在线用户数到700个以后,响应时间增速明显加快。当然响应时间只是需要观察的数据之一,随着测试负载的增加还需要观察系统资源的占有情况。
(3)压力测试
压力测试是评估软件产品处于或超过预期负载时的运行情况,其关注点为软件产品在峰值负载或超出最大载荷情况下的处理能力。
在压力级别逐渐增加时,软件产品的性能应该按照预期缓慢下降,但是不应该崩溃。压力测试还可以发现软件产品崩溃的临界点,从而发现其中的薄弱环节。例如,软件产品最大支持的同时在线用户数是1000个,压力测试需要测试在1000个,甚至2000个用户同时在线时软件产品的表现。虽然测试时负载已经超过了软件产品的设计能力,但是在这种情况下被测试软件产品也不应该发生崩溃。压力测试也可以针对软件产品资源进行测试,例如,在系统内存耗尽的情况下测试软件产品的运行情况,被测试软件产品不应该崩溃。
目前在软件界对性能测试、负载测试和压力测试3种效率测试类型的定义并不统一,在实际的测试工作中“性能测试”这个词被广泛地使用。在很多场合性能测试是上述3种测试类型的通称;在有的书籍或者参考资料中,性能测试的范围甚至更加广泛。
除了上面的3种测试类型以外,在效率测试中还可以采用下面的测试类型。
(1)耐力测试(Endurance Test
):主要是让软件产品长期运行,以评估其能力,该测试通常是在软件产品最大设计性能的情况下进行的。
(2)可扩展性测试(Scalability Test
):关注于软件产品满足未来更高效率需求的能力,目标是评判软件产品在不超出议定的限度或不失效情况下的增长能力(如容纳更多的用户或存储更多的数据),了解这些限度后可以设定一些阈值并在运行过程中监控和预警出现的问题。
度量软件产品效率
度量软件产品效率包括如下方面。
(1)响应时间
响应时间是指用户在发出指令以后获得软件产品响应时间,尤其是终端用户的响应时间是效率测试中的一个重要的度量。
“摘要”部分提供如下有关运行页面和运行中的页面元素的基本信息。
- 运行概要:主要包括活动的虚拟用户数和已完成测试的虚拟用户数。
- 页面摘要:主要包括所有页面的平均、最长和最短响应时间,以及平均响应时间的标准偏差,包括页面尝试和命中的总数及页面验证点(如果设置验证点)的结果等。
- “页面元素摘要”部分主要包括所有页面元素的平均响应时间及平均响应时间的标准偏差,包括页面元素尝试和命中的总数,以及已通过的验证点的百分比等。
从图中可以看到,此次性能测试的用户数为100,他们并未自始至终都在线。在测试运行期间这100个用户的状态分布如图所示。
当运行即将完成时活动用户数减少,而已完成的用户数增加。
(2)带宽、速率和容量
与带宽、速率和容量相关的度量包括消耗的带宽、吞吐量、时延、丢包率、每秒单击率和支持的最大用户数等,不同软件产品要求的度量也不同。
吞吐量是其中一个很重要的度量,可以应用于不同类型的测试对象,并且在不同场合下的含义不同。例如,对于路由器来说,吞吐量是在没有任何丢包的情况下能够达到的最大传输率;对于一个Web系统来说,页面的吞吐量可以是每秒最大接受的请求数目。下图所示为某Web系统的吞吐量测试结果。
开始时用户数比较少,随着用户数的增加每秒钟处理的请求数目逐渐增加。当用户数达到一定数目后,每秒处理的请求数目逐渐下降。
(3)资源使用情况
无论是Windows、Unix,还是Linux,均提供了多种监控系统资源的功能。Windows XP提供下列工具来监视计算机中的资源使用情况。
- 系统监视器(“性能”控制台的一部分)。
- 性能日志和警报(“性能”控制台的一部分)。
- 任务管理器。
监视系统性能是维护和管理Windows的重要功能,其性能监视对象和计数器,如下表所示。
使用性能数据有以下优点。
- 了解工作负荷及其对系统资源的影响。
- 观察工作负荷和资源使用的变化和趋势,以便计划今后的升级。
- 利用监视结果来测试配置更改或其他调整结果。
- 诊断问题和目标组件及过程,用于优化处理。
“系统监视器”和“性能日志和警报”提供有关操作系统的特定组件以及专门收集性能数据的程序所用资源的详细数据。性能监视数据以图形方式显示,日志则提供了记录这些数据的能力。当计数器值达到、高于或低于所定义的阈值时,警报将通过“信使”服务告知用户,Windows XP性能监视器如图所示。
酷客教程相关文章:
评论前必须登录!
注册