学习性能测试、分析、优化的方法.docxVIP

学习性能测试、分析、优化的方法.docx

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

前言

理论来源于实践又服务于实践,在笔者多年的IT经验中,性能问题一直是相对复杂的高阶问题,从性能测试到分析再到优化,考验的是工程师的综合IT技能。一个系统整体的性能牵扯到方方面面,硬件配置、网络配置、操作系统、中间件、应用架构、代码质量等等都会影响到系统的整体性能。初入性能领域的工程师可能感觉到无从下手。本文主要介绍相关性能测试、分析、优化的方法论。希望通过方法论的学习,可以帮助工程师在复杂纷乱的环境下明确性能目标,制定合理可行的性能测试计划,有针对性的进行性

能分析,发现系统真正的性能瓶颈,并最终能够进行有效的性能优化。

1相关概念介绍1.1软件测试分类软件测试按照测试阶段、是否运行程序、是否查看源代码以及其他方式,可以用下图所示来描述软件测试的各种分类。

单元测试

单元测试

界面测试

集成测试

业务逻辑功能测试

系统测试

兼容性测试

验收测试

易用性测试

静态测试

安全性测试

按是否运行程序划分

安装测试

性能测试

按是否查看代码划分

负载测试

黑盒测试

压力测试

灰盒测试

容量测试

回归测试

并发测试

配置测试

其他

可靠性测试

失败测试

软件测试

按阶段划分

动态测试

性能测试

功能测试

随机测试

冒烟测试

白盒测试

1.2性能测试分类系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言,包括:执行效率、资源占用、系统稳定性、安全性、兼容性、可靠性、可扩展性等。性能测试是为描述测试对象与性能相关的特征并对其进行评价,而实施和执行的一类测试。它主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。通常大家把性能测试、负载测试、压力测试统称为性能测试。1.基准测试:在给系统施加较低压力时,查看系统的运行状况并记录相关数作为基础。2.负载测试:是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或

多项性能指标达到安全临界值,例如某种资源已经达到饱和状态等。3.压力测试:压力

测试是评估系统处于或超过预期负载时的运行情况,关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。4.稳定性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。5.并发测试:测试多个用户同时访间同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题。1.3不同视角下的软件性能用户视角的软件性能从用户的角度来说,软件性能就是用户操作软件的响应时间;用户所体会到的“响应时间”既有客观的成分,也有主观的成分。例如,用户执行了某个操作,该操作返回大量数据,从客观的角度来说,事务的结束应该是系统返回所有的数据响应时间应该是从用户操作开始到所有数据返回完成的整个耗时;但从用户的主观感知来说,如果采用一种优化的数据呈现策略,当少部分数据返回之后就立刻将数据呈现在用户面前,则用户感受到的响应时间就会远远小于实际的事务响应时间。对于典型的交互系统,2s之内的响应时间通常是被用户所接受的;如果响应时间为5s时,用户的满意程度将会受到一定的影响;当交易响应时间为10s时,那么大多数用户将会不耐烦地关闭交易页面,显然这是非常糟糕的用户体验。管理员视角的软件性能管理员视角有时候也就是运维人员的视角。对于运维人员来说,响应时间当然也很重要,运维

方关注更多的是系统运行是否平稳(响应时间或者交易吞吐量是否有剧烈波动),CPU、

内存、存储等关键资源是否充足。另外,对于银行这样拥有海量用户和较高交易吞吐量的企业来说,系统是否具有较好的可扩展性是很关键的(这决定了是否能够通过资源调配和扩充平稳度过业务高峰),包括:1.系统的响应时间2.系统状态的相关信息,如

CPU、内存、应用服务器状态、JVM可用内存、数据库的状态等3.系统的可扩展性,即

处理并发的能力4.系统可能的最大容量和可能的性能瓶颈,通过更换哪些设备或是进行哪些扩展能够提高系统的性能。5.长时间运行是否足够稳定,是否能够不间断地提供业务服务等。开发视角的软件性能开发人员对性能的关注点更多的是系统投产上线后,响应时间是否达到了用户需求说明书中的相关要求。此外,开发人员更加关注编写代码的运行效率、数据库访问是否按照设想的访问路径以及索引设置是否合理等,包括用户和管理员关心的软件性能。如何通过调整设计和代码实现,或是如何通过调整系统设置等方法提高软件的性能表现。如何发现并解决软件设计和开发过程中产生的由于多用户访问引发的软件障,也就是通常所说的“性能瓶颈”和系统中存在的在大量用户访问时表现出来的缺陷。1.4性能衡量指标响应时间请求响应时间指的是客户端发出请求到得到响应的整个过程的时间。这

文档评论(0)

阿拉伯123 + 关注
实名认证
文档贡献者

好的 好的

1亿VIP精品文档

相关文档