hokage2000 发表于 2011-3-4 00:48:56

【分享】自己编写的用于执行场景的批处理工具

本帖最后由 hokage2000 于 2011-3-13 14:14 编辑

@ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION
TITLE AutoScenario - Created by Xingo.

SET AUTO_PAUSE=IF "%1" NEQ "-np" PAUSE

IF NOT EXIST *.lrs (
ECHO 错误:未找到场景文件(*.lrs)!
ECHO - 请确保此工具所在目录(或当前工作目录)下存在场景文件。
GOTO End
)
SET LRSDIR=%CD%

IF DEFINED TEMP (
SET TEMPFILE="%TEMP%\lrslist.tmp"
) ELSE (
SET TEMPFILE="lrslist.tmp"
)

IF DEFINED LR_ROOT (
SET M_ROOT=%LR_ROOT%bin
) ELSE (
IF DEFINED LR_PATH (
    SET M_ROOT=%LR_PATH%bin
) ELSE (
    ECHO 错误:自动获取路径失败!
    SET M_ROOT=请手动指定LoadRunner\bin路径:
)
)

IF NOT EXIST "%M_ROOT%" (
ECHO 错误:未找到LoadRunner\bin路径!
%AUTO_PAUSE%
GOTO End
)

IF NOT EXIST "%M_ROOT%\Wlrun.exe" (
ECHO 错误:未找到场景执行程序!
%AUTO_PAUSE%
GOTO End
)

ECHO - 已知的LoadRunner场景执行程序:%M_ROOT%\Wlrun.exe
ECHO.
ECHO - 正在生成将要执行的场景列表. . .
DIR /A-D /B *.lrs>%TEMPFILE%
ECHO.
ECHO - 将要执行的场景如下:
TYPE %TEMPFILE%
ECHO.
ECHO 若要终止运行,请直接关闭窗口。&%AUTO_PAUSE%

%M_ROOT:~,2%
CD %M_ROOT%

SET RES=%LRSDIR%\res
FOR /F "usebackq tokens=*" %%A IN (%TEMPFILE%) DO (
SET RES=%%A
SET RES=%LRSDIR%\!RES:~,-4!_res
IF EXIST "!RES!" RD /S /Q "!RES!"
PING 127.1>nul -n 5
Wlrun -TestPath "%LRSDIR%\%%A" -Run -ResultName "!RES!"
ECHO.&ECHO - 场景 %%A 执行结束。
)
ECHO.&ECHO - 所有场景执行结束。
%AUTO_PAUSE%

:End
SET AUTO_PAUSE=
IF EXIST "%TEMPFILE%" DEL /Q "%TEMPFILE%"
SET M_ROOT=
SET RESDIR=
功能:这个工具是用来批量执行场景的,假设一个目录下存放了多个场景文件(*.lrs),则本工具可自动依次执行它们。

用法:将上面的代码另存为"AutoScenario.bat"后,放入场景所在路径,双击即可执行。

诀窍:在创建性能测试项目时,建议将场景保存到同一个目录下(如,“D:\TestProject”),录制的脚本则命名为与场景相关的名字并作为其子目录保存(如,“D:\TestProject\Login”、“D:\TestProject\GetAccount”等)。这样在设计场景时可以使用相对路径引用脚本(如将脚本路径设置为“.\Login”、“.\GetAccount”等)。

拓展:熟悉命令行的你应该明白“当前路径”的概念。聪明的你只要在命令行中将当前路径设置为场景所在路径便可以灵活调用此工具来运行场景了。
例1:在命令行中使用,执行时不暂停
C:\Documents and Settings\Xingo>D:
D:\>CD TestProject
D:\TestProject>AutoScenario.bat -np
例2:自定义批处理文件,*.lrs分布在多个文件夹中
(假设场景在“D:\TestProject”和“E:\Performance”中,“AutoScenario.bat”位置在“C:\AutoScenario.bat”)@ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION
D:
CD TestProject
"C:\AutoScenario.bat" -np
E:
CD Performance
"C:\AutoScenario.bat" -np
ECHO 场景执行完毕。
PAUSE
提醒:
之前在9.5版本上自动执行场景有很大的概率出现卡死的情况。
建议大家使用LR11。

hokage2000 发表于 2011-3-4 22:11:32

审核真是个麻烦的咚咚。
通过了帖子都沉得找不到了呀。
只好自己沙发了,也没个支持的说。
{:4_97:}

msnshow 发表于 2011-3-4 23:12:15

很不错!

hokage2000 发表于 2011-3-4 23:35:23

回复 3# msnshow


    感谢BZ支持!{:4_101:}

linlfen 发表于 2012-11-15 16:54:02

这个东西,我找了好久,终于找到了!谢谢Xingo!!
页: [1]
查看完整版本: 【分享】自己编写的用于执行场景的批处理工具