[原创]什么是性能测试?
以下是Wikipedia中的解释:
Performance testing
From Wikipedia, the free encyclopedia
Jump to: navigation, search
http://en.wikipedia.org/wiki/Performance_testing
Performance Testing covers a broad range of engineering or functional evaluations where a material, product, system, or person is not specified by detailed material or component specifications: rather, emphasis is on the final measurable performance characteristics.
Performance testing can refer to the assessment of the performance of a human examinee. For example, a behind-the-wheel driving test is a performance test of whether a person is able to perform the functions of a competent driver of an automobile.
In the computer industry, software performance testing is used to determine the speed or effectiveness of a computer, network, software program or device. This process can involve quantitative tests done in a lab, such as measuring the response time or the number of MIPS (millions of instructions per second) at which a system functions. Qualitative attributes such as reliability, scalability and interoperability may also be evaluated. Performance testing is often done in conjunction with stress testing.
为什么要进行性能测试呢?
性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,并发现应用程序中中存在的性能瓶颈,如:如资源争用或运行速度慢的代码。然后通过性能调优,达到优化系统的目的。
性能测试的目标是什么?
以下是Robert W. Buchanan, Jr 的《The Art of Testing Network Systems》(John Wiley & Sons, Inc., 1996) 中对此有详细描述。
性能测试目标 |
|
度量最终用户的响应时间 |
|
定义最佳硬件配置 |
|
检查可靠性 |
|
查看硬件或软件升级 |
|
评估新产品 |
|
度量系统容量 |
|
确定瓶颈 |
在实施性能测试过程中,应制定性能测试目标来。为了提供评估基准,应明确区分可接受和不可接受测试结果的标准。
例如:
比较模糊的性能测试目标:新产品要上线,请选择web服务器的硬件。
明确的性能测试目标:新产品要上线,在一台 HP 服务器和一台 NEC 服务器上运行同一个300 个虚拟用户。当 300 个用户同时浏览 Web 应用程序页面时,确定哪一种硬件的响应时间更短。
性能测试应贯穿于整个软件产品生命周期中,以下是与各阶段相关联的关系:
产品计划和设计 |
|||||
评估新产品 |
|||||
|
|
|
|||
|
|
|
|
如果你明确了具体的性能目标后,可以开始进行测试,确定应用程序是否满足这些要求。通常性能测试假定这些应用程序稳定、可靠地运行。因此,在性能测试中应最大限度的减少影响性能测试的条件。例如,代码中的错误可以导致出现性能问题,甚至掩盖性能问题。所以要精确地比较不同性能测试的结果,应用程序必须正确地工作。如果调整过程修改了组件的实现,则重新测试应用程序的功能尤其重要。应用程序必须通过功能性测试后才可以测试性能。除了应用程序更改外,硬件、网络通信量、软件配置、系统服务等诸多方面也会发生意外的更改。控制应用程序更改很重要。