性能测试简介

发表于:2018-10-09 10:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:半世匠人    来源:博客园

分享:
  一、前言
  话说20世纪90年代初的某一天,国内第一台自主研发的大型固话交换机,终于千呼万唤地“闪亮”登场了。于是乎,这家公司马上向用户大力推销这款设备,但是用户提出了一个很实际的问题,彻底难住了这家公司,问题很简单,就是需要一份性能测试报告来证明这台设备真能支持宜称的话务容量那时候还没有成熟的电信领域性能测试工具,该怎么办呢?幸好有聪明的领导想出了一个中国式的解决办法某天下午,全公司的员工都放下了手头的工作,每人怀抱一部老式电话机(还要靠转盘来拨号),等领导倒数“三、二、一”后集体打电话。据说当时人数不够,达不到用户要求的通话量,甚至出现了一个人操作两部电话机的情况。
  当今社会“云计算”绝对是当前最热的T词汇,甚至沾上一点“云”概念的股票都会一飞冲天。“云”听起来很虚幻,其实就是瘦客户端加网格计算。今后客户端不再会有大量的计算任务,计算和存储都被放在云上。今后的客户端应该就是一个浏览器,用户的所有操作都是通过浏览器来实现的。 Google刚发布的操作系统 Chrome OS,就是基于这一理念设计的。B/S和C/S架构的软件系统,应该会慢慢演进到 Browser/Coud(浏览器/云)模式。如此看来,在“云计算”时代,Web性能测试依然很重要,而且会越来越重要。
  二、什么是性能测试
  性能测试是通过自动化的测试工具模拟多种正常峰值及异常负载条件来对系统的各项性能指标进行测试。性能测试的目的是验证被测系统能否达到用户提出的性能指标,同时发现被测系统的性能瓶颈,为性能优化指引方向,从而达到优化系统性能的目的。
  性能测试包括以下几个方面:
  ■评估系统的能力:测试中得到的负荷和响应时长数据可以被用于验证所计划的模型的能力,并帮助做出决策。
  ■识别体系中的弱点:受控的负荷可以被增加到一个极端的水平并突破它,从而修复体系的瓶颈或薄弱的地方
  ■系统调优:重复运行测试,验证调整系统的活动是否得到了预期的结果,从而改进性能。检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中隐含的问题或冲突。
  ■验证稳定性( Resilience)、可靠性( Reliability):在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
  三、性能测试分类
  性能测试包括负载测试、压力测试和容量测试等。
  负载测试( Load Testing):
  负载测试是指通过测试系统在资源超负荷情况下的表现,来发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,如响应时长、事务处理速率和其他与时间相关的性能指标。
  压力测试( Stress Testing):
  在软件工程中,压力测试是对系统不断施加压力的测试,是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。例如测试一个Web站点在大量的负荷下,何时系统的响应会退化或失败。
  容量测试( Volume Testing):
  容量测试确定系统可处理同时在线的最大用户数。
    
  负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是当负载逐渐增加时,测试系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能供的最大服务级别的测试。
  四、性能测试指标
  对于B/S架构的软件,一般会关注如下Web服务器性能指标:
  ■ Avg Rps:平均每秒钟的响应次数=总请求次数秒数。Avg time to last byte per terstion( mates):平均每秒业务脚本的选代次数。
  ■ Successful Rounds:成功的请求。
  ■ Failed Rounds:失败的请求。
  ■ Successful Hits:成功的点击次数
  ■ Failed Hits:失败的点击次数。
  ■ Hits Per Second:每秒点击次数。
  ■ Successful Hits Per Second:每秒成功的点击次数
  ■ Failed Hits Per Second:每秒失败的点击次数。
  ■ Attempted Connections:尝试连接数。
  ■ Throughput:吞吐率
  对于C/S架构的程序,由于软件后台通常为数据库,所以我们更注重数据库的测试指标:
  ■ User Connections:用户连接数,也就是数据库的连接数量;
  ■ Number of Deadlocks:数据库死锁;
  ■ Butter Cache Hit:数据库 Cache的命中情况。
  五、测试指标折算
  测试环境平均并发数=(最大在线人数x10%)n
  上式中,n是生产环境和测试环境服务器配置折算比,例如  n=公倍数  ( (生产Web服务器数/测试web服务器数),(生产APP服务器数/测试APP服务器数) )  ×  (生产服务器内存测试服务器内存),一般算下来n=4。
  六、测试结果分析
  毫无疑问,分析性能测试结果非常重要,而且很有难度。可以这么说,会执行性能测试案例的人是“徒弟”,能够准确全面分析性能测试结果的人是“师父”。如何分析性能测试结果,后面再深入探讨……
  七、生成性能测试报告
  如何生成一份准确严谨的性能测试报告,是一项技巧性的工作。读者朋友只要遵循一定原则,并掌握一些文字技巧就不难办到。一份性能测试报告,至少应该包含如下内容:
  ■测试基本信息:包含测试目的、报告目标读者、术语定义、参考资料。
  ■测试环境描述:包含服务器软/硬件环境、网络环境、测试工具、测试人员。
  ■性能测试案例执行分析:需要详细描述钢个测试案例的执行情况,以及对应的测试结果分析。
  ■测试结果综合分析及建议:对本次性能测试做综合分析,并给出测试结论和改进建议
  ■测试经验总结。

   上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号