【性能工具】LoadRunner多场景顺序执行

2022-03-25 13:59:31 浏览数 (2)

应用场景:

假设有多个不同的测试场景,多个场景有先后执行顺序。或者都需要测试,但白天时间有限, 通过晚上批量执行,可以有两种方式实现。

第一种:利用LR Controller里面Group的功能 新建一个场景把3个脚本都添加进来,在Edit Schedule中选择“Schedule by Group”的方式,在StartTime中设置3个脚本的运行顺序为“Start when Group xxx finished”,并在“Scenario Start Time”中设定场景在晚上的运行启动时间。设定完定时执行场景后,点击StartScenario按钮,会出现一个倒计时窗口,这样在固定的某个时间 上,测试场景中的3个脚本将乖乖的按照设定的先后顺序进行测试。注意,如果没有点击StartScenario按钮激活测试,是不会真正进行测试的。(原文拷贝至上面的链接)

这种模式存在的一个问题是,多个Group的结果放在一起,分析的时候很麻烦

1.注意将没有Group中需要监控的事务名字设置为各不相同且易于理解的 2.通过时间来区分不同Group的Hits/PerSecond

第二种:使用批处理 我们把应用场景稍微扩展一下,假设其中每个场景一个测试脚本(实际上没有关系,在场景里边设置你需要的脚本和模式,时间等等)。这时,可以通过命令行的方式来进行。 首先创建并设置好不同测试场景,再创建一个一个批处理程序按先后顺序调用这些场景进行测试,最后通过Windows的定时任务设定批处理的执行时间。 批处理示例如下: cls SET M_ROOT="D:Program FilesMIMercury LoadRunnerbin" %M_ROOT%wlrun.exe -TestPath "D:Program FilesMIMercury LoadRunnerscenarioTestTestScen_1.lrs" -Run %M_ROOT%wlrun.exe -TestPath "D:Program FilesMIMercury LoadRunnerscenarioTestTestScen_2.lrs" -Run %M_ROOT%wlrun.exe -TestPath "D:Program FilesMIMercury LoadRunnerscenarioTestTestScen_3.lrs" -Run 这种方式比较灵活,但需要注意在ResultSettings中设置“Automatically create a results directory for each scenario execution”,以免后面的测试结果覆盖了前面的。所有Result最好设置到相同指定的目录,这样后续便于查看.

这种方式比较好,将这些代码直接拷贝过去修改一下就可以用了

1. 在Control中设置好日志记录方式和路径,生成的日志名从res0.res1...顺序生成

2. 一个场景跑完后,一般需要停止一段时间在执行下一个,需要在批处理中增加sleep操作

使用Windows的VBS脚本中的sleep函数,可以动态创建这个VBS脚本,然后用Windows脚本宿主的命令行版本调用它。时间精度为微妙,使用平台为Win9x/WinNT系列。

@echo off & setlocal enableextensions enabledelayedexpansion echo Wscrīpt.Sleep 2000 > %temp%tmp$$$.vbs echo %time% cscrīpt //nologo %temp%tmp$$$.vbs echo %time% for %%f in (%temp%tmp$$$.vbs) do if exist %%f del %%f endlocal & goto :EOF

其中csript E:>cscrīpt Microsoft (R) Windows scrīpt Host Version 5.6 版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。 用法:Cscrīpt scrīptname.extension [option...] [arguments...] 选项: //B 批模式:不显示脚本错误及提示信息 //D 启用 Active Debugging //E:engine 使用执行脚本的引擎 //H:Cscrīpt 将默认的脚本宿主改为 Cscrīpt.exe //H:Wscrīpt 将默认的脚本宿主改为 Wscrīpt.exe (默认) //I 交互模式(默认,与 //B 相对) //Job:xxxx 执行一个WSF 工作 //Logo 显示徽标(默认) //Nologo 不显示徽标:执行时不显示标志 //S 为该用户保存当前命令行选项 //T:nn 超时设定秒:允许脚本运行的最长时间 //X 在调试器中执行脚本 //U 用 Unicode 表示来自控制台的重定向 I/O 我的实际运行代码(2003下运行通过) 1.需要修改sleep的时间长短,单位微秒,比如5分钟为300 000 2.只需要修改wlrun.exe的目录和-TestPath参数的目录即可 @echo off & setlocal enableextensions enabledelayedexpansion echo Wscrīpt.Sleep 30000 > %temp%tmp$$$.vbs SET LR_PATH="E:Program FilesMercury InteractiveMercury LoadRunnerbin" %LR_PATH%wlrun.exe -TestPath "E:...._pplive_com.lrs" -Run echo %time% cscrīpt //nologo %temp%tmp$$$.vbs %LR_PATH%wlrun.exe -TestPath "E:...._cartoon.lrs" -Run echo %time% cscrīpt //nologo %temp%tmp$$$.vbs %LR_PATH%wlrun.exe -TestPath "E:....list_pages_pid.lrs" -Run echo %time% for %%f in (%temp%tmp$$$.vbs) do if exist %%f del %%f endlocal & goto :EOF

0 人点赞