最近使用LR做性能测试,需要遍历目录下的文件,然后以不同的并发数请求文件中的URL。这里用到了批处理命令。
命令涉及的知识点如下:
- @echo off:本行开始关闭回显。一般批处理的第一行均为这个。
- rem:注释命令
- set key = value : 设置变量key,并将value赋值给key
- %time%和%date%:当前时间和当前日期,%date:~n,m% 可以截取获得时间。
C:\Users\night-pc>echo %date% 2014/12/30 周二 C:\Users\night-pc>echo %date:~0,4% 2014
- for /R %%i in (*.txt) do (echo %%i):搜索当前路径和子目录下所有含.txt的文件,并执行do后面操作。
- %%~ni:只将5中的%%i扩展为文件名,否则%%i输出的是绝对路径。利用%%~ni可以获取符合条件的文件名。
- for /L %%i in (1,1,5)do (echo %%i):以增量形式开始到结束的数字序列,(start,step,end)。这里输出1,2,3,4,5
两个for循环,一个遍历读取文件, 一个控制并发数,由于1路不好写在循环内,所以单独提出来写。命令其实还可以优化,比如一些公用的路径,也可以用变量的形式去替代。
<span style="font-family:Microsoft YaHei;">@echo off
rem set result_dir=%date:~0,4%%date:~5,2%%date:~8,2%%time:0,2%%time:3,2%
set result_dir=%date:~0,4%%date:~5,2%%date:~8,2%
cd /d "C:\LR\solr\Scripts\input"
for /R %%i in (*.txt) do (
echo %%~ni start
copy ..\HEAD.txt + %%i /B /Y C:\LR\solr\Scripts\select\SelectUrl.dat
rem cd /d "C:\Program Files (x86)\HP\LoadRunner\bin"
echo %%~ni_1 running
Wlrun.exe -TestPath "C:\LR\solr\Scenario\1.lrs" -Run -ResultName "C:\LR\solr\Result\%result_dir%\%%~ni\1"
echo %%~ni_1 end
for /L %%s in (10,10,100) do (
echo %%~ni_%%s running
Wlrun.exe -TestPath "C:\LR\solr\Scenario\%%s.lrs" -Run -ResultName "C:\LR\solr\Result\%result_dir%\%%~ni\%%s"
echo %%~ni_%%s end
)
)
pause</span>