LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner11也很稳定。
可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。
LoadRunner的组件:
- Virtual User Generator—虚拟用户生成器
- LoadRunner Controller—创建、运行和监控场景
- LoadRunner Analysis—分析测试结果
- Scenario(场景) 定义测试阶段出现的事件,基于性能需求。在LoadRunner的Controller部件中,可以设计与执行用例的场景,设置场景的步骤主要包括:在Controller中选择虚拟用户脚本、设置虚拟用户数量、配置虚拟用户运行时的行为、选择负载发生器(Load Generator)、设置执行时间等
- Virtual Users or Vusers Vusers 模拟用户在你的系统上操作的动作。一个场景可以包含几十,上百,甚至上千的虚拟用户。性能测试模拟多个用户操作可以理解为这些虚拟用户在跑脚本,以模拟多个真正用户的行为。
- Vuser Script(脚本) 通过Vuser Generator录制或开发的脚本,这些脚本用来模拟用户的行为。
- Protocal 协议是客户端和服务器之间交流的方式
- Transaction(事务) 测试人员可以将一个或多个操作步骤定义为一个事务,可以通俗的理解事务为“人为定义的一系列请求(请求可以是一个或者多个)”。在程序上,事务表现为被开始标记和结束标记圈定的一段代码区块。Loadrunner根据事务的开头和结尾标记,计算事务响应时间、成功/失败的事务数。
- 负载发生器(Load Generator):用来产生压力的机器,受Controller控制,可以使用户脚本在不同的主机上执行。在性能测试工作中,通常由一个Controller控制多个Load Generator以对被测试系统进行加压。
-
思考时间(Think Time):即请求间的停顿时间。实际中,用户在进行一个操作后往往会停顿然后再进行下一个操作,为了更真实的模拟这种用户行为而引进该概念。在虚拟用户脚本中用函数lr_think_time()来模拟用户处理过程,执行该函数时用户线程会按照相应的time值进行等待。
-
集合点(Rendezvous):设集合点是为了更好模拟并发操作。设了集合点后,运行过程中用户可以在集合点等待到一定条件后再一起发后续的请求。集合点在虚拟用户脚本中对应函数lr_rendezvous() 。
-
事务响应时间:事务响应时间是一个统计量,是评价系统性能的重要参数。定义好事务后,在场景执行过程和测试结果分析中即可以看到对应事务的响应时间。通过对关键或核心事务的执行情况进行分析,以定位是否存在性能问题。
LoadRunner负载测试的流程
- Plan the load test 计划负载测试
- Create Vuser scripts 创建脚本
- Define the scenario 定义场景
- Analyze the results 分析结果
流程:
1. 创建UV脚本
1.1 录制脚本
打开LoadRunner12的Virtual User Generator,点击左上角的File>New Script and Solution,弹出Create a New Script 窗口,在窗口中选择Web-HTTP/HTML协议,后点击Create 就会创建空白脚本。
VuGen的脚本分为三个部分:Vuser_init,Action,Vuser_end。其中Vuser_init和Vuser_end都只能存在一个,而Action可分成无数多个部分,可以通过点击旁边的【new】按钮来创建Action。在迭代执行测试脚本时,Vuser_init和Vuser_end中