Performance Testing 入门小结

时间:2024-01-07 12:04:44

从事软件测试两年多了,一直在做功能测试。2016年计划学习Performance。今天,先把之前听过的同事session以及自己查阅的资料小结一下。

一、什么是性能测试

首先来说一下软件的性能是什么。视角不同,考虑的软件性能也不同。比如,普通用户关注的软件性能就是响应速度,即软件用起来快不快,爽不爽;对于软件管理者或开发人员来说,意味着一系列的性能指标,如响应时间、并发用户数、吞吐量等等。

性能测试的英文定义是这样的:

In software engineering, performance testing is testing that is performed, to determine how fast some aspect of a system performs under a particular workload. It can also serve to validate and verify other quality attributes of the system, such as scalability, reliability and resource usage.

在软件工程中,性能测试是指在特定的负载下系统运行速度。性能测试也用来验证系统的其他质量指标,如扩展性、可靠性以及资源利用率等,主要用于后续性能调优。(翻译的不是很好,大家明白就好)

二、性能测试的目标(该部分内容转自百度百科,很通俗易懂)

性能测试目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。
包括以下几个方面:
1.评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。
2.识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
3.系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。
4.验证稳定性(resilience)可靠性(reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。

三、性能测试的分类

经常可以看到类似的一句话,性能测试、负载测试和压力测试统称为性能测试。在这里简单讲一下,我的理解:

第一个性能测试,可以理解为狭义性能测试,一般是指软件在正常运行的情况下,测试获得各项性能指标;

负载测试,我的理解是通过不断的增加系统的负荷(负荷可以理解为用户请求等),发现系统存在的性能缺陷。负载测试是一种性能测试的手段或方法,多数情况下性能测试通常是在不同负载下进行的。

压力测试,是指在系统高负载的情况下的测试,因为高负载的时候比较容易发现平时发现不到的性能问题,可以更好的去判断系统的稳定性。