Board logo

标题: 软件性能测试完整 [打印本页]

作者: look_w    时间: 2017-10-19 14:47     标题: 软件性能测试完整

性能测试是软件测试的一种形式,集中于系统如何在特定的负载下运行系统执行。这不是关于发现软件bug或者缺陷。性能测试是根据基准和标准来应对。性能测试需要给开发人员提供诊断信息,以便他们清除问题。


软件系统测试的各种类型

为了理解软件如何将在用户系统运行,有几种不同类型的性能测试在软件测试期间可以应用。这是非功能测试,目的在于确定系统的准备情况。(功能测试集中于软件的个别功能。)




负载测试
负载测试检测系统随着工作负载增加时的性能。工作负载可能意味着并发用户或事务。当工作负载增加,监控系统来检测它的响应时间和系统的持久能力。该工作负载在正常工作条件的参数范围内。


压力测试
不像负载测试,压力测试——也叫做疲劳测试——意味着检测系统在正常工作条件参数范围外的性能。可以给这个软件更多的用户或事务处理。压力测试的目标是检测软件的稳定性。软件会在何种程度故障,还有软件如何从失败中恢复。


尖峰冲击测试
尖峰冲击测试是压力测试的一种,它评估软件负载在快速和反复大幅度增长时的性能。在短时间内,工作负载超出了正常的预期。


耐力测试
耐力测试——也叫做浸泡测试——是评估软件性能如何在长时间执行正常工作的。耐力测试的目标是检查系统问题,例如内存泄露。(内存泄露发生在系统无法释放被丢弃的内存的时候。内存泄漏会损害系统性能,或者导致系统失败。)


可扩展性测试
可扩展性测试是用来确定软件是否有效的处理日渐增长的工作负载。这可以通过当监控系统性能时,增加的用户负载或数据量来确定。并且当CPU和内存等资源变更的时候,工作负载可能保持在相同的水平。


容量测试
容量测试确定软件在大量、预期数据量下的执行效率。它也被称为洪水测试,因为这个测试用数据淹没了系统。



在性能测试种最常见的问题

在软件性能测试期间,开发人员会寻找性能的症状和问题。速度问题——例如缓慢的响应和长时间的加载时间——经常会被观察和处理。但是还能看到有一些其他的性能问题:



性能测试7步


同样也被曾作测试台,测试环境是设置软件、硬件和网络来执行性能测试的地方。为了使用性能测试测试环境,开发人员可以用下面七步:



性能测试参数测量了什么

参数需要理解性能测试的质量和效果。除非有测量,否则无法提高。现在解释下2种定义:
有许多方法可以测量速度、可扩展性和稳定性,但是每轮性能测试无法使用全部方法。在性能测试中所用的参数,下面的是经常用到的:

响应时间
发送一个请求和获得一个响应的总时间。

等待时间
这也称为平均延迟,这告诉开发人员在发送请求后接收第一个字节需要多长时间。

平均加载时间
从用户的角度来看,交付每个请求所需的平均时间是质量的主要指标。

峰值响应时间
这是完成请求所需的最长时间的测量。峰值响应时间明显长于平均时间,这可能表明出现问题的异常情况。

错误率
这是一个与所有请求相比,计算产生错误的请求的百分比。这些错误通常发生在负载超过容量的时候。

并发用户
这是最常见的负载测量——在任意时刻有多少活跃用户,也称为负载大小。

每秒请求
多少请求被处理。

事务通过/失败
对成功或不成功请求的总数的测量。

吞吐量
以千字节每秒的速度度量,吞吐量显示测试期间使用的带宽量。

CPU利用率
CPU需要多少时间来处理请求。

内存利用率
需要多少内存来处理请求。


性能测试最佳实践

也许性能测试最重要的小建议就是早测试,常测试。一个单独的测试将无法告诉开发人员他们所需知道的全部。成功的性能测试是许多的反复测试和小测试组成的。






除了反复测试,通过一系列性能测试的最佳实践,性能测试将会更加成功。





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0