概念
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
简单的来说就是选择适合自己系统业务逻辑的方式,用最低的成本、最快的时间来做出最有价值的事情。
分类
根据不同的测试目的,在具体的测试执行中又有所侧重和区分,详细可分为:压力测试、容量测试、极限测试、基准测试。
压力测试:评估系统处于或超过预期负载时系统的运行情况。压力测试的关注点在于系统在峰值负载或超出最大载荷情况下的处理能力。在压力级别逐渐增加时,系统性能应该按照预期缓慢下降,但是不应该崩溃。压力测试还可以发现系统崩溃的临界点,从而发现系统中的薄弱环节;
容量测试:确定系统可处理同时在线的最大用户数,使系统承受超额的数据容量来发现它是否能够正确处理;
极限测试:在过量用户下的负载测试;
基准测试:比较新的或未知测试对象与已知参照标准(如现有软件或评测标准)的性能。
指标
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性能的工具,这个工具是很多公司的标准测试工具,包括微软在分析其软件性能的时候,也是使用这个工具做为基准工具的;
步骤
由于工程和项目的不同,所选用的度量,评估方法也有不同之处。不过对于性能测试有一些通用的步骤。
分析系统;
创建测试模型,通常是从生产环境中的数据中统计;
测试方案;
制定评估标准;
选择相关技术和工具;
设计性能测试场景,也就是测试用例;
输出 告;
运行测试,分析调优。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!