请选择 进入手机版 | 继续访问电脑版

设为首页 收藏本站
思科社区 关注
思科社区

搜索
热搜: 邮件服务器
查看: 1134|回复: 2

【原创翻译】DevOps性能测试的最佳实践与工具

[复制链接]
发表于 2020-6-12 11:12:53 | 显示全部楼层 |阅读模式

引言:如今,DevOps的落地将软件服务的性能测试提升到了一个全新的水平,并在产品交付过程中显得尤为重要。本文向您介绍各种有关性能测试的最佳实践与工具。

众所周知,如果研发出来的软件产品最终根本无法达到最初设计的目的,并且满是缺陷和bug的话,这对于应用开发人员来说就是最大的噩梦。同时,对于测试人​​员而言,无论是应用程序的性能、还是与稳定性相关的各种问题,他们都有责任把好最后一关,以确保软件的质量不会在任何情况下被拉低
正所谓千里之堤溃于蚁穴,任何一处的代码缺陷,都会影响到您所研发出的软件的最终整体性能。因此真正专业且经验丰富的测试专家,是不会放松任何一项编码测试环节的。
如今,各大企业都希望通过DevOps来提高软件产品的交付质量。而这往往需要在软件研发的生命周期中,采用各种业界最佳的测试方法和测试用例。在此,我们将分享一些与DevOps相关的性能测试的细节,希望能够给各位软件测试人员带来一些启发。
初始测试阶段
在这个阶段,我们需要在不增加任何负载的情况下,对应用程序进行性能测试,以便设置好初始化的基线。此举意味着我们通过设置一个虚拟用户,来循环执行某些任务,以检查目标应用程序的基本功能,当然,此类性能分析并不会增加任何并发的负载。
显然,此类基线测试是非常重要的,因为它能够有效地根据处置各种调用命令、或事务的最短响应时间,来设置基线。一旦某个事务被执行完毕,系统就会记录并生成其相应的响应时间。在此基础上,您可以通过增加负载,来观察与应用程序性能相关的各种因素。一般而言,此类因素包括:CPU的利用率、内存的使用情况、以及处理的延时。
作为测试人​​员,他们需要分别记下最快和最慢的交易事务时间,然后在此基础上细致地与研发人员沟通与合作,将负载最大时的交易时间降至最小。另外,测试人​​员还有责任在这两种时间的上下限之内保持应用程序的稳定性,以便软件即使是在重负载、多并发的情况下,仍然能够保证其自身和所提供服务的双重稳定性。
寻找临界点
在测试的初期,测试人员需要充分考虑的另一个关键事项是:通过循环测试各种场景,以找到软件的临界点。同样地,对此类临界点的分析也是非常重要的。此法可以确保正常的事务不会因为突然遭遇到过多的服务请求,而导致延时甚至是中断。
如果无法确保自己的软件产品能够随着用户访问数量的激增,还能够平稳顺利地运行的话,那么您精心部署和发布出来的应用程序,实际上是毫无意义的。因此,只有通过对应用程序持续采取此类所谓的临界点“极限测试”,我们才能对各种峰值负载进行预判,要么事先准备好各种应急措施,要么让软件能够自动实施相应的限流与排障方案。
至此,我们已经为软件预防性功能测试做好了基础工作。下面让我们继续进行深层次的测试讨论。
反复测试脚本
我们在对于软件程序进行“抗压”测试时,千万不可浅尝辄止。测试人员一般会分不同的场景,反复运行测试脚本,以检验软件在应对不同请求来源时的兼容性。当然为了提高效率,大多数测试人​​员还会选用各种自动化的测试工具,来达到此类测试目的。
Selenium是上述自动化测试工具的典型代表。它通过放大并激增各种测试的请求,以监控目标软件在极端条件下是如何协调并运行的。由于在现实环境中,我们很难在短时间内集结大量的用户请求,并手动测试应用程序的鲁棒性。因此,借用此类工具所产生的自动化脚本,在测试过程中添加大量虚拟用户是非常重要的。它们对于系统整体性能的检测与描述,具有一定的客观性和可参考性。
持续对应用程序进行性能测试,将有助于我们发现CPU和内存在使用中的变化情况,开发人员也可以借此在代码层面、甚至是架构层面予以调整,以全面提高软件应用的综合服务性能。具体操作方法,请参见:https://www.bugraptors.com/service/performance-testing/
DevOps环境中被广泛使用的测试工具
Selenium
如前文所提到的,Selenium是最常用的测试工具之一。它可以为测试人员提供最好的过程体验。无论您是要测试移动应用的整体性能与潜在漏洞,还是要检查Web应用的并发临界点,Selenium都可以为您安排好一切。
同时,Selenium也被广泛地运用到了桌面应用的测试环境中,以辅助提高软件的运行效率。另外,测试人员往往需要知道其目标应用是否能够很好地兼容、并工作在不同的浏览器和操作系统上,因此他们可以通过Selenium来创建各种回归性测试、自动录制动作、并自动生成不同语言(如.NetJavaPerl等)的测试脚本,来达到各种测目的。可以说,如果您想对某个应用程序的整体性能有所把握的话,Selenium一定是您的不二之选。
UFT
UFTUnified Functional Testing)同样也是一款功能强大的性能测试工具,它能够帮助测试人员持续监控系统的各项性能指标。UFTVBScirpt为内嵌语言,支持自动化的功能测试和回归测试。无论您是想测试Web应用、还是某项服务、甚至是对各种运行环境进行测试,它都能够为您及时地提供基于不同视图的结果。此外,该工具还能够自动化地产生各种测试报告与文档。
总结
综上所述,我们在运用DevOps进行软件产品开发与测试,特别是那些性能测试时,上述提及的最佳实践和测试工具,是我们在自己的项目推进过程中,所总结出来的关键点,希望能够引起每一位开发人员和测试人​​员的适当重视。
【原标题】 Best Practices and Tools in DevOps Performance Testing (作者: Claire Mackerras)
原文链接:https://dzone.com/articles/aspects-associated-with-devops-performance-testing


  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
发表于 2020-6-12 12:26:39 | 显示全部楼层
感谢版主分享,谢谢~
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
发表于 2020-7-5 12:19:10 | 显示全部楼层
实践经验。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
您需要登录后才可以回帖 思科 CCO 登录 | 思科 CCO 注册   

本版积分规则

Archiver | 思科社区  

GMT+8, 2020-9-29 15:53 , Processed in 0.098407 second(s), 33 queries .

京ICP备11014401号-17

© 2020 思科系统.版权所有 重要声明 | 保密声明 | 隐私权政策 | 商标 |

快速回复 返回顶部 返回列表