性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
简单的来说就是选择适合自己系统业务逻辑的方式,用最低的成本、最快的时间来做出最有价值的事情。
根据不同的测试目的,在具体的测试执行中又有所侧重和区分,详细可分为:压力测试、容量测试、极限测试、基准测试
压力测试:评估系统处于或超过预期负载时系统的运行情况。压力测试的关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。在压力级别逐渐增加时,系统性能应该按照预期缓慢下降,但是不应该崩溃。压力测试还可以发现系统崩溃的临界点,从而发现系统中的薄弱环节。
容量测试:确定系统可处理同时在线的最大用户数,使系统承受超额的数据容量来发现它是否能够正确处理。
极限测试:在过量用户下的负载测试。
基准测试:比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能。
Web服务器指标指标:
Avg Rps: 平均每秒钟响应次数=总请求时间 / 秒数
Avg time to last byte per terstion (mstes):平均每秒业务脚本的迭代次数,有人会把这两者混淆
Successful Rounds:成功的请求
Failed Rounds :失败的请求
Successful Hits :成功的点击次数
Failed Hits :失败的点击次数
Hits Per Second :每秒点击次数
Successful Hits Per Second :每秒成功的点击次数
Failed Hits Per Second :每秒失败的点击次数
Attempted Connections :尝试链接数
CS结构程序,由于一般软件后台通常为数据库,所以我们更注重数据库的测试指标:
User 0 Connections :用户连接数,也就是数据库的连接数量
Number of deadlocks:数据库死锁
Buffer Cache hit :数据库Cache的命中情况
对于不同的系统,性能关注点是有所区别的,应该具体问题具体分析。
情况许可时,应使用几种测试工具或手段分别独立进行测试,并将结果相互印证,避免单一工具或测试手段自身缺陷影响结果的准确性。
了解“有限的资源,无限的需求”。
尽可能在开始前明确调优工作的终止标准。
调优过程中应仔细进行记录,保留每一步的操作内容及结果,以便比较分析。
Web Bench:是一个简单的web或者web代理服务的基准测试工具。(它)使用fork()模拟多个客户端并且可以发起HTTP/0/9-HTTP/1.1的请求
Apache JMeter:是一个专门为运行和服务器装载测试而设计的、100%的纯Java桌面运行程序。原先它是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。
Web Polygraph:是一个用于测试WEB性能的工具,这个工具是很多公司的标准测试工具,包括微软在分析其软件性能的时候,也是使用这个工具做为基准工具的。
LoadRunner: 是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner , 企业能最大限度地缩短测试时间, 优化性能和加速应用系统的发布周期。企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢, 系统崩溃等问题。这些都不可避免地导致公司收益的损失。Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源, 无需购置额外硬件而最大限度地利用现有的IT 资源, 并确保终端用户在应用系统的各个环节中对其测试应用的质量, 可靠性和可扩展性都有良好的评价。LoadRunner 是一种适用于各种体系架构的自动负载测试工具, 它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统, 它通过模拟实际用户的操作行为和实行实时性能监测, 来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术, 为您的特殊环境提供特殊的解决方案。
由于工程和项目的不同,所选用的度量,评估方法也有不同之处。不过对于性能测试有一些通用的步骤。
分析系统
创建测试模型,通常是从生产环境中的数据中统计。
测试方案
制定评估标准
选则相关技术和工具
设计性能测试场景,也就是测试用例
输出报告
运行测试,分析调优
作者: Tynam.Yang
原文链接:https://www.cnblogs.com/tynam/p/13536470.html