性能测试培训——基础知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
性能测试培训(一)
——基础知识
1.软件性能测试的概念
1.1软件性能与性能测试
软件性能:覆盖面广泛,对一个系统而言,包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等。
性能测试:为保证系统运行后的性能能够满足用户需求,而开展的一系列的测试组织工作。
1.2不同角色对软件性能的认识
用户眼中的软件性能:
⏹软件对用户操作的响应时间
如用户提交一个查询操作或打开一个web页面的链接等。
⏹业务可用度,或者系统的服务水平如何
管理员眼中的软件性能:
开发人员眼中的软件性能:
1.3性能测试的对象
服务器端:
⏹负载均衡系统;
⏹服务器(单机、双机热备、集群);
⏹存储系统、灾备中心;
⏹数据库、中间件。
网络端:
⏹核心交换设备、路由设备;
⏹广域网络、专线网络、局域网络、拨号网络等;
应用系统:
由此可见,性能测试是一个系统性的工作,被测对象包括系统运行时使用的所有软硬件。但在实际操作时,将根据项目的特点,选择特定的被测对象。
1.4性能测试的目标
评价系统当前的性能:
⏹系统刚上线使用,即处于试运行时,用户需要确定当前系
统是否满足验收要求;
⏹系统已经运行一段时间,如何保证一直具有良好的性能。分析系统瓶颈、优化系统:
⏹用户提出业务操作响应时间长,如何定位问题,调整性能;
⏹系统运行一段时间后,速度变慢,如何寻找瓶颈,进而优
化性能。
预见系统未来性能、容量可扩充性:
⏹系统用户数增加或业务量增加时,当前系统是否能够满足
需求,如果不能,需要进行哪些调整?提高硬件配置?增
加应用服务器?提高数据库服务器的配置?或者是需要对
代码进行调整?
1.5性能测试的分类
按照测试压力级别:
⏹负载测试;
⏹压力测试;
按照测试实施目标:
⏹应用在客户端的测试;
⏹应用在网络的测试;
⏹应用在服务器端的测试;
按照测试实施策略:
⏹并发性能测试;
⏹疲劳强度测试;
⏹大数据量测试;
⏹失效恢复测试。
其他分类:
⏹并发测试;
⏹执行效率测试;
⏹资源占用测试;
⏹容量测试;
⏹网络测试;
⏹稳定性测试。
1.5.1负载测试
负载测试是为了确定系统在各种工作负载下的性能,目标是测试当负载逐渐增加时,系统的性能变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量。
如:系统在保证一定的响应时间(或稳定性)的情况下,能够允许多少并发用户访问。
系统的各项指标包括:响应时间、CPU负载、内存使用等如何决定系统的性能。
1.5.2压力测试
压力测试通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大的服务级别的测试。通俗的讲,压力测试是为了发现在什么条件下,应用程序的性能会变得不可接受。
1.5.3并发性能测试
并发性能测试是一般意义上的负载压力测试。
1.5.4疲劳强度测试
疲劳强度测试是通过一定时间长度的负载压力测试,使测试者能够了解系统是否可以满足7*24小时运行的需要。疲劳强度测试属于可靠性测试的范畴。
1.5.5大数据量测试
大数据量测试是测试应用程序随着数据库数据量级数增加的情况下的性能表现。
1.5.6失效恢复测试
失效恢复测试是针对有冗余备份或负载均衡的系统来说的。检验当系统局部发生故障时,系统灾备措施是否可以正常启动,用户是否可以继续使用。通过实施失效恢复测试,评估系统的健壮性和可恢复性。
2.性能测试策略
2.1.应用在客户端的测试
2.1.1.实现机制
通过在一台或几台PC机上模拟成百上千的虚拟用户同时执行业务的情景,对应用程序进行测试。通过可重复的、真实的测试,能够彻底的度量应用程序的性能,确定问题所在。
2.1.2.常用工具
⏹商业测试工具
LoadRunner, Rational Robot,QALoad,Silk
Performor
⏹开源(OpenSource)测试工具
Apache Jmeter,OpentSTA…
⏹自主开发测试程序或者测试工具
2.1.
3.自动化性能测试的优势
2.1.4.测试工具使用的基本步骤
⏹录制业务流程,形成测试脚本;
⏹修改调试脚本;
⏹执行性能测试。
2.1.5.测试脚本执行策略
性能测试脚本应本着一一对应的原则录制业务,即一个脚本仅针对一项业务录制。
测试脚本执行策略应按照以下顺序执行:
1、单一脚本单用户执行;
2、单一脚本多用户执行;
3、采用增殖的方式集成混合脚本,且仅使用单用户执行;
4、混合脚本多用户执行。
2.2.应用在网络的测试
2.2.1.网络仿真技术
网络仿真技术的作用是模拟网络的吞吐量、延时、抖动、错包、丢包等性能特性,从而在测试环境下就可以得到设备或软件在实际的网络环境下的表现,并在发现性能问题时,对每个数据包进行分析,从而可以快速的找到问题所在。
2.2.2.网络性能监控
2.2.2.1.测试目标
⏹分析关键应用程序的性能;
⏹定位问题的根源是在客户端、服务器、应用程序还是网络;
⏹哪些应用程序占用大量带宽;
⏹哪些应用程序导致系统瓶颈或资源竞争;
⏹哪些应用程序产生了最大的网络流量。
2.2.2.2.常用工具
⏹Compuware:Network Vantage
⏹HP:Network Node Manager
⏹IBM:Tivoli
2.2.2.
3.工作原理
在客户端、应用服务器端、数据库服务器端等处部署捕捉点采集数据,并利用管理工具对采集到的数据进行分析。
⏹捕捉点:Agent被动监听数据包来实现实时数据采集
⏹分析:Agent Manager完成对所跟踪到的数据的分析