自动化测试工具LoadRunner
一个系统的成功与否不仅看它是否能达到人们的预期而成功完成某项任务,同时还要看系统的性能是否符合一定标准。系统的性能是一个很大的概念,覆盖面非常广泛,包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等。而利用自动化工具则可以模拟真实用户来操作系统,通过这种方式来发现系统性能瓶颈的过程就叫作系统的性能测试。
LoadRunner是一种预测系统行为和性能的负载测试工具,通过模拟成千上万名用户和实施实时性能监测来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。[10] 4.1 LoadRunner特性 轻松创建虚拟用户:
使用LoadRunner 的Virtual User Generator,我们能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,我们可以在Windows ,UNIX或Linux 机器上同时产生成千上万个用户访问。 创建真实的负载:
Controller 的Rendezvous 功能提供一个互动的环境,在其中既能建立起持续且循环的负载,又能管理和驱动负载测试方案。而且,我们还可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。 实时监测器:
LoadRunner 内含集成的实时监测器,在负载测试过程的任何时候,我们都可以观察到应用系统的运行性能。这些性能监测器为我们实时显示交易性能数据(如响应时间)和其它系统组件包括application server, web server,网路设备和数据库等的实时性能。 分析结果:
一旦测试完毕后,LoadRunner 收集汇总所有的测试数据,并为我们提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner 的Web交易细节监测器,我们可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间。
负载测试是一个重复过程。每次处理完一个出错情况,我们都需要对我们的应用程序在相同的方案下,再进行一次负载测试。以此检验我们所做的修正是否改善了运行性能。[11]
第 1 页 共 19 页
4.2 LoadRunner三大组件: Vugen(Virtual User Generator) 用来录制脚本、编辑脚本 Controller
用来布置和执行测试场景 Analysis
用来对测试结果进行分析 4.3 LoadRunner名词解释与分析:
图4.1 LoadRunner三大组件
Controller LoadRunner LoadRunner VuGen Analysis LoadRunner为性能测试工具,在脚本录制编辑过程中的名词以及系统
Analysis分析器里面有很多关于系统性能指标的名词,这里列出了一些最为常用的名词。
Rendezvous(集合点):集合点用以同步虚拟用户以便恰好在同一时刻执行任务。在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到测试计划中的需求。Transaction(事务):事务就是在脚本定义中定义的某段操作(ACTION),更确切的说,就是一段脚本语句.定义事务时,首先在脚本中找到事务的开始和结束位置,然后分别插入一个事务起始标记,这样,当脚本运行的时候,LoadRunner会自动在事务的起始点计时,脚本在运行到事务结束点时计时结束,系统会自动记录这段操作的运行时间等性能数据;在脚本运行完毕后,系统会在结果信息中单独反映每个事务运行结果。Transactions per Second(每秒通过事务数/TPS):显示在场景运行的每一秒钟,每个事务通过、失败以及停止的数量,是考查系统性能的一个重要参数。通过它可以确定系统在任何给定时刻的时间事务负载。分析TPS主要是看曲线的性能走向。将它与平均事务响应时间进行对比,可以分析事务数目对执行时间的影响。例:当压力加大时,点击率/TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈。
Response Time(响应时间) Client C1 C2 N1 N4 Internet Web Server A1 A3 N2 N3 Database Server A2
从用户的角度,响应时间=(C1+C2)+(A1+A2+A3)+(N1+N2+N3+N4);
第 2 页 共 19 页
从系统的角度,响应时间包括(A1+A2+A3)+(N1+N2+N3+N4)。
对于用户能够接受的响应时间,在行业中一般都有369原则,即3s以内响应速度比较快,3s-6s能接受,9s以上不能忍受。Throughput(吞吐量):即每秒处理事务的数量。可以依据服务器的吞吐量来评估虚拟用户产生的负载量,以及看出服务器在流量方面的处理能力以及是否存在瓶颈。Hits per Second(每秒点击数):即运行场景过程中虚拟用户每秒向Web服务器提交的HTTP请求数。通过它我们可以评估虚拟用户产生的负载量,如将其和“平均事务相应时间”图做比较,可以查看点击次数对事务性能产生的影响。通过对查看“每秒点击次数”,可以判断系统是否稳定。系统点击率下降通常表明服务器的响应速度在变慢,需进一步分析,发现系统瓶颈所在。HTTP Responses per Second(每秒HTTP响应数):是显示运行场景过程中每秒从Web服务器返回的不同HTTP状态代码的数量,还能返回其它各类状态码的信息,通过分析状态码,可以判断服务器在压力下的运行情况,也可以通过对图中显示的结果进行分组,进而定位生成错误的代码脚本。Web Page Breakdown(页面分解图):显示某一具体事务在测试过程的响应情况,进而分析相关的事务运行是否正常。 4.4 LoadRunner的工作机制:
LoadRunner是一种企业级测试工具,它的工作机制较为复杂,掌握好
LoadRunner的工作机制对于更好地掌握和使用LoadRunner有很大帮助,同时也会加深我们对LoadRunner的理解。如图4.2为LoadRunner工作机制的分解图。 Script Vugen
HTTP Protocol Client Emulation Capture&Record Servers/Environment Under Test Mercury Diagnostics Java Clients Virtual Users IE Clients Monitoring Run Logs Start/Stop Diag logs Schedule Run-time Settings .html Controller Analysis Internet browser Copy/ paste MS Excel Crystal Reports Scenarios Reports&Graphs MS Word .doc Load Generators Probes/ Agents 图4.2 LoadRunner工作机制
LoadRunner中的Vugen通过监听IE客户端与服务器之间的通信,捕捉记录
第 3 页 共 19 页