为什么80%的码农都做不了架构师?>>>

根据产品的时间特性和资源特性,效率测试可以包括不同的测试类型,例如:性能测试、负载测试和压力测试。本文则主要介绍这三种测试,希望对你有帮助,一起来看。

下面我们主要介绍性能测试负载测试压力测试

效率作为ISO 9126内部和外部质量的重要质量属性之一,其含义是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力。资源可能包括其他软件产品或系统的软件和硬件配置,以及其他相关的资源(例如:打印纸、磁盘等)。

效率测试主要关注产品的时间和资源相关的特性。时间相关的特性是指在规定条件下,软件产品执行其功能时,提供适当的响应和处理时间以及吞吐量的能力,例如:用户打开某个网页需要等待的时间;资源相关的特性是指,在规定条件下,软件产品执行其功能时,使用合适数量和类别的资源的能力,例如:用户在进行相关操作时,系统的内存和CPU的变化情况。

根据产品的时间特性和资源特性,效率测试可以包括不同的测试类型,例如:性能测试(Performance Test)、负载测试(Load Test)和压力测试(Stress Test)。这三种效率测试类型,不仅在具体定义上面有不同的侧重点,同时相互之间又是密切关联的。

1)性能测试

性能测试主要评价系统或组件的性能是否和具体的性能需求一致,例如:对访问速度的性能需求或对内存使用情况的需求。特定性能测试的关注点在于组件或系统在规定的时间内和特定的条件下响应用户或系统输入的能力。

不同的性能的度量方法取决于不同的被测对象。对于一个单独软件组件,其性能可以根据CPU主频来判定。而带客户端的系统,其性能则要根据系统处理特定用户请求的响应时间来判定。对于那些由多种组件(如客户端、服务器、数据库)构成的系统,则要进行各组件之间的性能测试。

产品的性能对用户是否会持续使用该产品影响很大。表1所示是一个用户对访问一个独立页面时等待不同时间的态度分布。可以看到,当页面加载时间在10秒的时候,有84%的用户愿意等待;但是当页面加载时间达到30秒的时候,只有5%的用户愿意等待。

表1 用户愿意等待时间分布

表1中的数据考虑了网络的延迟。而如果在测试环境中,整个网络是被测试系统所独占的时候,对系统性能的要求要高的多。对于愿意等待的时间,每个用户的承受范围是不同,而且用户对不同的应用程序愿意接受的等待时间也是不一样的。下面是一组关于响应时间的性能需求描述:

  • 对于多媒体交互系统,在90%的时间内系统响应时间应该不超过0.1秒;
  • 对于每个用户同时只有一项任务的在线系统,在90%的时间内系统响应时间应该不超过0.5秒;
  • 对于每个用户同时有多任务的在线系统,在90%的时间内系统响应时间应该不超过1秒。

性能测试关注的是系统性能是否和具体的性能需求相一致,而当系统性能超过性能需求的时候,系统的表现并不是测试人员关心的重点。

例如:性能需求中要求系统应该支持最大同时在线用户为5000个,那么在性能测试过程中重点测试系统是否能支持5000个用户同时在线;当有5000个用户同时在线后,性能测试需要关注整个系统的运行是否符合要求;而对于在线用户超过5000人的时候,系统的表现行为并不是性能测试需要关注的。

2)负载测试

负载测试是一种通过增加负载来评估组件或系统的性能的测试方法。例如:通过增加并发用户数和(或)事务数量来测量组件或系统能够承受的负载。负载测试和性能测试的主要区别在于负载测试时,系统负载是逐渐增加的,而不是一步到位,负载测试需要观察系统在各种不同的负载情况下是否都能够正常工作。

下图是某网站随着用户数量的增加,对应的响应时间也在增加的趋势图。具体趋势如图1所示。

图1 某网站负载测试中用户数量和响应时间关系图

通过观察图1,可以发现随着用户数目的增加,系统响应时间也跟着增加。当在线用户数到700以后,系统响应时间增速明显加快。当然响应时间只是需要观察的数据之一,随着测试负载的增加还需要观察系统资源等占有情况。

3)压力测试

压力测试是评估系统处于或超过预期负载时系统的运行情况。压力测试的关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。在压力级别逐渐增加时,系统性能应该按照预期缓慢下降,但是不应该崩溃。压力测试还可以发现系统崩溃的临界点,从而发现系统中的薄弱环节。

例如:系统最大支持的同时在线用户数是1000个,压力测试需要测试在1000个用户甚至2000个用户同时在线时系统的表现。虽然测试时负载已经超过了系统的设计能力,但是在这种情况下被测试系统也不应该发生崩溃。压力测试也可以针对系统资源进行测试,例如:在系统内存耗尽情况下,测试系统的运行情况,这种情况下被测试系统也不应该崩溃。

前面分别介绍了性能测试、负载测试和压力测试三种效率测试类型。目前在软件测试领域,对这三种测试类型的定义并不统一。在实际的测试工作中,性能测试这个词被广泛的使用。在很多场合,性能测试是上述三种测试类型的通称;在有的书籍或者参考资料中,性能测试的范围甚至更加广泛。

补充一个跑步的例子进行解释:

  • 性能测试,表示在一个给定的基准下,能执行的最好情况。

    • 例如,在没有负重的情况下,你跑100米需要花多少时间(没有负重是基准)?
  • 负载测试,也是性能测试,但是它是在不同的负载下的。
    • 如果扩展为:在50公斤、100公斤……等情况下,你跑100米需要花多少时间?
  • 压力测试,是在压力情况下的性能测试。
    • 在一阵强风的情况下,你在负重或没有负重的情况下,跑100米需要花多少时间?

>( 来自性能测试、负载测试以及压力测试的区别 )

转载于:https://my.oschina.net/zhangyujian/blog/761844

性能测试、负载测试以及压力测试相关推荐

  1. 性能测试、负载测试、压力测试的区别

    转载自:https://www.cnblogs.com/Bonnieh/p/5826773.html 性能测试(Performance Testing):是通过自动化的测试工具模拟多种正常.峰值以及异 ...

  2. 性能测试,负载测试,压力测试有什么区别

    性能测试,负载测试,压力测试有什么区别 性能测试(或称多用户并发性能测试).负载测试.强度测试.容量测试是性能测试领域里的几个方面,但是概念很容易混淆.下面将几个概念进行介绍. 性能测试(Perfor ...

  3. 性能测试vs负载测试vs压力测试

    下面我们主要介绍性能测试.负载测试和压力测试. 效率作为ISO 9126内部和外部质量的重要质量属性之一,其含义是在规定条件下,相对于所用的资源的数量,软件产品可提供适当性能的能力.资源可能包括其他软 ...

  4. 压力测试和负载测试区别_如何理解与区分软件性能测试、负载测试、稳定性测试、压力测试...

    性能测试.负载测试.稳定性测试.压力测试之间有何区别?刚开始自己也不能很好的区分,随着一些具体性能测试实践的开展,大概有一个基本的认识,总结如下: 首先,大致了解下软件产品的性能受哪些因素的影响 我们 ...

  5. 性能测试 vs 负载测试 vs 压力测试

    在做一些软件测试工作时,常常会被提及性能测试.负载测试.压力测试,这也是在软件测试方面最容易混淆的三个概念.之前和一个测试大牛聊天,他和我说常常面试一些测试人员会问一些这样的问题,大多人认为负载测试等 ...

  6. 性能测试——负载测试、容量测试、极限测试、压力测试

    1.负载测试(Load Test):负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担. 关注点:how much 2.压力测试(Stress Test): 压力测试(又叫强度测试)也 ...

  7. 软件性能测试负载测试,软件性能测试VS负载测试VS压力测试[2]

    软件性能测试VS负载测试VS压力测试[2] 发表于:2010-03-16来源:作者:点击数: 软件性能测试VS负载测试VS 压力测试 [2] 性能测试工具 假若在调试过应用程序及 数据库 后,系统还是 ...

  8. 负载测试、压力测试和性能测试的异同

    负载测试(Load testing).压力测试(Stress Test,应称为强度测试)和性能测试,这三个概念常常引起混淆,难以区分,从而造成不正确的理解和错误的使用.之前,也有不少讨论,比较有名的, ...

  9. 负载测试、压力测试和性能测试的区别

    负载测试(Load testing).压力测试(Stress Test,应称为强度测试)和性能测试,这三个概念常常引起混淆,难以区分,从而造成不正确的理解和错误的使用. 负载测试.压力测试和性能测试的 ...

最新文章

  1. python中string的操作函数
  2. Java 集合系列(3): fail-fast总结(通过ArrayList来说明fail-fast的原理、解决办法)...
  3. 【机器学习】机器学习中样本不平衡,怎么办?
  4. Android USB 开发详解
  5. nginx搭建文件服务器脚本,基于docker搭建nginx文件服务器的方法步骤
  6. Linux redhat ICE环境安装
  7. AutoCAD 2008中文版实用自学手册•机械设计篇
  8. Android:GPS卫星定位
  9. 亚马逊运营怎么做广告?六大方法!
  10. 干货:压敏电阻选型和注意事项,必知
  11. 水晶报表打印出错,未能加载文件或程序集“CrystalDecisions.CrystalReports.Engine, Version=10.5.3700.0
  12. Thread yield
  13. 如何突破LinkedIn领英限制,导出非好友邮箱等社交方式
  14. UEFI启动和Bios(Legacy)启动的区别
  15. [转]如何成为优秀的程序员?
  16. AES加密算法及逆向
  17. python打印日历_python输出指定月份日历的方法
  18. OpenSSL API 签发证书
  19. JavaScript基础(详细总结)
  20. 微软CRM5.0最新鲜的介绍-Microsoft Dynamics CRM 2011

热门文章

  1. Android应用开发-快速入门
  2. 2020.12.15
  3. 产品诞生过程--导图
  4. mysql 导入错误_mysql导入sql文件报错 ERROR 2013 2006 2002
  5. 查询a表有但是b表没有的数据_牛逼!一个上亿数据的报表竟然能做到秒查~
  6. mac idea用自带的maven还是_苹果电脑自带截图工具怎么用?mac自带截屏工具使用技巧分享
  7. linux查看占用的命令,linux内存占用查看命令
  8. 丰田pcwin是什么软件_丰田工机PCWin软件通讯设置及联机操作重点提示 - 图文 -...
  9. kali2020进入单模式_2021神途手游:超级变态单职业
  10. java领域对象_java的几种对象(po,dto,dao等)