性能测试的原理?
任意一种性能测试,其实现原理包括如下几点:
1.用户行为模拟
低成本且具有可行性,模拟大量用户操作的一种技术。
->不同用户使用不同的数据(LoadRunner通过"参数化"实现)
->多用户并发操作(LoadRunner通过"集合点"实现)
->用户请求间的依赖关系(LoadRunner通过"关联"实现)
->请求间的延时时间(LoadRunner通过"思考时间"实现)
2.性能指标监控
通过上面的技术模拟用户的行为,在系统运行中需要监控各项性能指标,并分析指标的正确性
->请求响应时间监控(LoadRunner通过"事务"实现)
->服务器处理能力监控(LoadRunner通过"事务"计算吞吐量获得)
->服务器资源利用率监控(LoadRunner提供全面简洁的计数器接口)
3.性能调优
通过指标的监控发现系统存在的性能缺陷,利用分析工具定位并修正性能问题。LoadRunner本身并不提供任何性能调优的功能,但是在其Analysis组件中提供了常见性能分析的策略及整合报告的功能。
LoadRunner是通过以下流程实现用户行为模拟的(脚本的录制和修改是由VuGen完成的,而场景的创建和执行是由Controller完成的)什么是场景,下图:
通过使用VuGen对用户的行为进行录制,将操作转化为对应的脚本,进一步将该脚本进行修改来完善对用户行为的模拟。随后通过Controller设计一个场景,指定负载生成的方式,从而执行场景,完成最终的用户负载行为的模拟。
性能指标监控是通过以下方式实现的(计数器的管理由Controller负责,而测试结果的总结统计由Analysis完成),如下图:
在场景中可以远程管理被负载服务器的相关计数器(这里可以先简单认为计数器就是操作系统自带的类似于CPU占有率之类的基础指标),当场景运行结束,负载生成的数据和服务器计数器数据会被统一保存。最后调用Analysis对所有负载数据进行整合分析,最终得出结论并生成报告。
注:Controller本身无法形成负载,它只是一个设计工具,而负载的生成是通过Load Generator实现的。Controller会将脚本发送给多个负载生成器(Load Generator),由负载生成器根据预先的设置对被测系统形成负载。
Load Generator就是生成负载的负载生成器,通过VuGen录制生成的用户脚本,最终都会在Load Generator上运行并生成负载。由于生成的负载一般数量比较大,通过一台电脑进行负载往往力不从心(常见配置一台Load Generator大概能模拟200-500个虚拟用户),所以可以通过一台Controller调用多台Load Generator即可模拟成千上万虚拟用户对系统的负载过程。
在调用Load Generator时注意不要让生成负载成为瓶颈(宽带通常是主要瓶颈),导致性能测试结论的偏差。
网友评论