Loadrunner_VUG部分讲解二0一五年六月杜家军2020/1/122020/1/12一、Loadrunner简介及组成二、脚本录制三、脚本参数化四、关联五、脚本调试六、运行时设置目录2020/1/122020/1/12一、Loadrunner简介及组成LoadRunner是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner版本:lr7.0、lr7.6、lr8.0、lr9.1,目前lr11.0、lr11.5、lr12.0,版本间的差距很大。Loadrunner的主要组件包括:VirtualUserGenerator、LoadRunnerController、LoadRunnerAnalysis。2020/1/122020/1/12一、Loadrunner简介及组成VirtualUserGenerator的主要功能在于录制、处理与回放脚本。2020/1/122020/1/12一、Loadrunner简介及组成LoadRunnerController的主要功能是在所录制的脚本基础上,增加虚拟用户,设置环境来测试在不同的虚拟压力环境下的处理能力。2020/1/122020/1/12一、Loadrunner简介及组成使用LoadRunnerAnalysis可以生成所完成的压力测试报告,并生成相应的图形以分析测试结果。2020/1/122020/1/12二、脚本录制、编写(1)下面以B/S架构的网银系统为例,来介绍Loadrunner测试脚本的实现及脚本的调试。在弹出的“VirtualUserGenerator”页面上,单击创建脚本按钮,如右图所示:然后在弹出的新建虚拟用户页面中,类别选择“所有协议”中的“web(HTTP/HTML)”协议。然后点击“创建”按钮。2020/1/122020/1/12脚本录制在下图“开始录制”页面中的URL地址(U)录入框中,填写正确的系统访问地址。注意此处地址一定要填写正确,否则录制脚本时无法出现系统页面。。在录制选项页面中,单击“录制”选项,在HTTP/HTML级别中,选择“基于URL的脚本”。2020/1/122020/1/12脚本录制在录制选项页面中,单击“录制”选项,在HTTP/HTML级别中,选择“基于URL的脚本”。在系统登录首页中,录入正确的账号名称、密码、验证码。此时点击“开始事务”按钮,如右图红框,在开始事务选项卡中,填写事务名称,并“确定”。然后单击“登录”按钮。2020/1/122020/1/12脚本录制右图为成功登录后界面。点击不在提示即可。另外,点击“正在录制选项卡”中的结束事务按钮(上图已用红框标出)。确定。下面以历史交易明细查询功能作为一个事务来详细说明。在主界面的菜单栏中,依次点击“账户管理”-“账户明细查询”。2020/1/122020/1/12脚本录制在账户明细查询页面中,选择账号列表中一个可用账号,查询类别选择“历史交易明细查询”,交易日期选择某一范围。点击“查询”按钮。在查询结果页面中,点击loadrunner选项卡“正在录制”中的结束事务按钮,并填写结束事务名称,确定。这样,一个历史交易明细查询事务就产生了。如右图所示。2020/1/122020/1/12脚本录制定义退出事务。如下图所示:右图中,系统询问是否真的要退出系统,点击确定。2020/1/122020/1/12脚本编辑-参数化页面录制完成后,Loadrunner会根据录制的用户操作页面信息自动生成loadrunner脚本。如右图所示:红框标注的为网银系统登录用户名、密码信息。在实际的压测中,可能需要使用N个登录用户名,登录密码最好统一为固定密码。这样,就需要对用户名进行参数化操作。2020/1/122020/1/12脚本编辑-参数化在右图中,选中登录账号名称,右键,弹出下拉框中选择“替换为参数”选项,点击它。在出现的选择或创建参数窗口中,命名参数名称(命名规则:最好是见名知义),参数类型默认为File就行。点击属性。2020/1/122020/1/12脚本编辑-参数化如右图,在参数属性窗口中,可对参数值进行编辑。右图中,点击“用记事本编辑”,可实现记事本方式的参数值编辑。2020/1/122020/1/12脚本编辑-参数化右图中,在“选择下一行”中有以下几个选项:Sequential:按照顺序一行行的读取。每一个虚拟用户都会按照相同的顺序读取Random:在每次循环里随机的读取一个,但是在循环中一直保持不变Unique:唯一的数。SameLineAs某个参数(比如Name):和前面定义的参数Name取同行的记录。通常用在有关联性的数据上面。2020/1/122020/1/12脚本编辑-参数化如右图,在“更新值的时间”中有以下几个选项:EachOccurrence:在运行时,每遇到一次该参数,便会取一个新的值。Eachiteration:运行时,在每一次循环中都取相同的值。Once:运行时,在每次循环中,该参数只取一次值。这里我们用的是随机数,选择EachOccurrence非常合适。2020/1/122020/1/12脚本编辑-参数化右图中,在“选择下一行”中有以下几个选项:Sequential:按照顺序一行行的读取。每一个虚拟用户都会按照相同的顺序读取Random:在每次循环里随机的读取一个,但是在循环中一直保持不变Unique:唯一的数。SameLineAs某个参数(比如Name):和前面定义的参数Name取同行的记录。通常用在有关联性的数据上面。2020/1/122020/1/12脚本编辑-参数化如下图所示:“当超出值时”有以下几个选项。AbortVuser:停止用户Continueinacyclicmanner:使用循环迭代的值Continuewithlastvalue:一直使用最后的值2020/1/122020/1/12脚本编辑-关联脚本中,对应用服务器产生的sessionID进行关联。(因为服务器每次产生的sessionID值都不相同,所以需要进行关联操作。)手工关联的步骤是:1、在脚本中选中拷贝待关联的信息。如右图:2、在脚本编辑页面中的菜单工具栏中,单击“树”按钮,在出现的页面中,单击“HTTP视图”,然后单击页面左边的相关*.do,在右侧响应页面中查找sessionID。2020/1/122020/1/12脚本编辑-关联找到待查找信息后,单击右键选择“创建关联”。根据提示进行操作。单击“是”,完成关联操作。如下图,在脚本中,会看到sessionID值会被替换成一个由“{”与“}”包含的参数。这样,每次访问系统时,参数值会及时获取访问服务器新产生的sessionID值。2020/1/122020/1/12脚本编辑-调试当脚本做完编辑(参数化、关联、检查点、集合点等),需要调试下脚本是否能够正常运行。如下图,点击菜单栏中“运行”按钮,执行测试脚本。大家可以在ReplayLog中看到打印的脚本运行信息。如果脚本中事务执行成功,会打印Transaction”******”endedwith“Pass”status。2020/1/122020/1/12脚本编辑-运行时设置运行逻辑每个action和action之间运行的先后顺序就是在这里设置的。2020/1/122020/1/12脚本编辑-运行时设置日志分为标准日志与扩展日志。实现不同需求。2020/1/122020/1/12脚本编辑-运行时设置通过这个来设置模拟用户等待操作的实现,由于Loadrunner回放脚本是全速进行的,而真正的用户的操作并不会如此迅速,所以要通过添加等待时间的方式,在脚本的运行过程中模拟用户的等待操作,实现这个操作的函数是lr_think_time()。2020/1/122020/1/12脚本编辑-运行时设置多线程2020/1/122020/1/12脚本编辑-运行时设置速度模拟可以自定义设置网络带宽。2020/1/122020/1/12脚本编辑-运行时设置模拟了整个http头中的user-agent信息,从而让服务器错误的认为是一个个真实的客户端对服务器发出了请求,通过设置可以将脚本模拟成各种浏览器。2020/1/122020/1/12脚本编辑-运行时设置可设置是否启用图像及文本检查;http的请求时间、超时时间等参数。2020/1/1229/332020/1/1229/322020/1/12Inspurgroup谢谢大家!