如何理解性能测试、负载测试、稳定性测试、压力测试?


广义上性能测试指的是以下几种性能测试类型:
性能测试
负载测试
压力测试
稳定性测试
一般系统的性能指标
响应时间(系统为其服务所耗费的时间) 。
吞吐量(简单讲就是系统在每单位时间内能处理多少个事务/请求/单位数据等) 。
资源使用率(常见的资源有:CPU占用率、内存使用率、磁盘I/O、网络I/O) 。
点击数(单位时间内 。系统响应客户的请求 。是系统处理能力的一个很有用的指标) 。
并发用户数(并发用户数用来度量服务器并发容量和同步协调能力) 。
我们取其中某几个性能指标 。举个栗子 。我们先假设一个场景:XX查询系统 。其中一项产品规格(性能指标)为300用户并发查询 。页面首屏结果请求响应时间不超过3秒 。

如何理解性能测试、负载测试、稳定性测试、压力测试?

文章插图
随着被测系统的负载不断增大 。系统TPS变化趋势图 。如上图中 A/B/C/D四点表示:
A:产品规格(性能指标)
B :高于性能指标 。接近系统资源临界点
C :高于性能指标 。达到最大 。出现性能拐点(可理解为最大并发用户数)
D :远高于性能指标 。系统崩溃
性能测试
测试A点的系统性能 。
性能测试是为了获得系统在某种特定的条件下(包括特定的负载条件下)的性能指标数据 。
负载测试
【如何理解性能测试、负载测试、稳定性测试、压力测试?】测试 A点以下到C点系统性能 。
负载测试的目标是测试在一定负载情况下系统性能(不关注稳定性 。也就是说不关注长时间运行) 。实际中我们常从比较小的负载开始 。逐渐增加模拟用户的数量(增加负载) 。观察不同负载下应用程序响应时间、数据吞吐量、系统资源使用率(如CPU、内存)等 。直到到系统的某项或多项性能指标达到安全临界值(如 。系统内存已饱和) 。以发现系统可能存在的性能瓶预、内存泄漏、不能实时同步等问题(不关注稳定性 。也就是说不关注长时间运行 。它是测试系统的不同负载情况下的性能指标 。
稳定性测试
测试 A点以下 到 B 点之间
稳定性测试是一般在低于性能值的前提下进行测试的 。一般稳定性测试时间持续为 n*24 小时 。测试时 。我们需要结合用户实际情况控制测试中的负载量。使测试结果更具准确性和可靠性 。
压力测试
测试B 点到D 点之间系统性能 。
压力测试是在高于性能指标负载的前提下(超负载)对系统持续施加压力进行测试的 。查看应用系统在峰值使用情况下操作行为 。从而有效地发现系统的某项功能隐惠、系统是否具有良好的容错能力和可恢复能力 。压力测试分为高负载下的长时间(如124小时以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试 。
稳定性压力测试:在选定的压力值下 。长时间持续运行 。通过这类压力测试,可以考察各项性能指标是否在指定范围内 。有无内存泄漏、有无功能性故障 。
破坏性压力测试:在稳定性压力测试中可能会出现些问题。如系统性能明显降低 。但很难察露出其真实的原因 。通过破坏性不断加压的手段(极限负载情况下导致系统崩溃) 。往往能快速造成系统的崩溃 。
压力测试的几点注意
测试时 。我们需要注意并不是负载超过了系统的最大处理能力 。系统功能都会失效 。例如 。OA签到最多支持500用户井发登录 。但某时550用户同时进行登录时 。系统应保证550个用户中 。500用户是可以正常登录 。而不是所有用户都无法登录 。
用户的业务负载并不是平均的 。可能在极短时间内 。出现超过负载的情况 。如某宝双十一 。因此不建议用持续超过系统负载的测试方法进行压力测试 。只要负载足够多 。系统总会被搞挂 。建议使用突发形态的负载模型 。
其他观点:
首先谢谢邀请
如何理解性能测试、负载测试、稳定性测试、压力测试?

文章插图
性能测试是一种软件测试形式 。侧重于运行系统的系统如何在特定负载下执行 。这不是找到软件错误或缺陷 。性能测试根据基准和标准测量 。性能测试应该为开发人员提供消除瓶颈所需的诊断信息 。
负载测试:涉及在应用程序上确定负载以验证其行为方式的任何测试(即:响应时间);
性能测试:它是一个负载测试 。受到应用程序规范定义的负载的限制 - 测试是验证或确认应用程序将按计划的性能运行;

推荐阅读