本小节主要讲述LoadRunner性能测试工具的工作原理,从宏观的角度了解LoadRunner的总体框架、LoadRunner四大组件是如何工作的以及它们之间是如何通信的。
LoadRunner由四大组件组成:VuGen、控制器、负载发生器和分析器。各组件之间的关系如图2-1所示。
图2-1 总体架构原理图
1)VuGen发生器(Visual User Generator,VuGen):它的作用是捕捉用户的业务流,并最终将其录制成一个脚本。在录制脚本前首先选择一种协议(脚本录制前如何选择协议的内容在后面章节中会详细讲述);接着在客户端模拟客户实际使用过程中的业务流程,并录制成一个脚本;然后编辑脚本和设置Run-Time Settings项;最后VuGen通过对脚本的编译生成一个没有错误的可运行的脚本。
2)控制器(Controller):控制器部分包含两大作用。第一:设计场景。脚本编辑完成后,必须对脚本如何运行设计一种策略。场景设计主要包括手动场景设计和目标场景设计两种方式;第二:场景监控。控制器可以实时监控脚本运行的情况。可以通过添加计数器来监控Windows资源、应用服务器和数据库使用情况。
场景设计的目的是设计出一个最接近用户实际使用的场景,场景设计越接近用户使用的实际情况,测试出来的数据就越接近真实值。否则测试出来的数据是不可靠的,到系统上线时可能还是会出现性能问题,场景设计也涉及很多技巧,如IP欺骗、负载均衡等一些手段。
执行实时监控更多的是对资源使用情况的监控,以检测这些系统资源是否可能存在瓶颈。
3)负载发生器(Load Generators):模拟用户对服务器提交请求。
正常情况下,在性能测试过程中会将控制器和负载发生器分开,即控制器使用一台独立的机器,为什么会这样做呢?因为在进行脚本编辑时会产生大量的参数化文件,而这些参数化文件会占用系统资源,再者就是运行时会产生大量的日志文件,所以在测试过程中一般都会将控制器与负载发生器分开;最主要的原因是因为在模拟成百上千的虚拟用户进行性能测试时,每个虚拟用户都是需要消耗系统资源的,如果虚拟的并发用户过多,会导致测试机出现瓶颈。
负载发生器的计算:在测试时,需要计算测试过程中需要使用多少台负载发生器才算是合理的,任何一台计算机所能支持的虚拟用户数都有一个上限值,如果在测试过程中需要测试的并发虚拟用户数超过计算机所能支持的最大虚拟用户数,这时测试的负载机本身也就成为性能的瓶颈。每个虚拟用户运行时需要占用一定的系统内存资源,具体的值可以从官方文档中获得,通过这个值可以计算出一台计算机最多可以支持多少个虚拟用户。例如,假设负载发生器的计算机使用的内存容量为512MB,在测试过程中每个虚拟用户需要的内存资源大概为2.5MB,那么这台计算机最多只能支持200个虚拟用户并发测试,如果需要测试500个虚拟用户并发,那么就需要两台计算机。
需要注意的是当使用多台负载发生器时,一定要保证负载均衡。负载均衡是指在进行性能测试的过程中,保证每台负载发生器均匀地对服务器进行施压。如果负载处于不均衡的情况,那么在测试过程中,有的负载机很忙,而有的负载机又处于很闲状态,这样测试出来的值是不可靠的。
4)分析器(Analysis):一个数据分析工具,主要用于对测试结果进行分析。Analysis分析器中提供了很多基础的数据,但是仅仅依靠这些基础的数据是不够的,客户看到这样的报告也不会满意。在这里涉及到很多分析技术,常用的分析技术有:合并、叠加、页面细分和钻取技术等,这些技术在后面会进行详细的描述。Analysis的另一个优点就是它本身提供了很多报告的形式,包括XML、Word等,这是LoadRunner做得比较出色的一部分。
以上就是LoadRunner四大组件以及工作原理,大家喜欢的话记得每天来这里和小编一起学习涨薪技能。(笔芯)
附:川石信息全国校区最新开班时间,课程资料获取13691729932(微信同号)。