51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1895|回复: 4
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-3-4 00:48:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hokage2000 于 2011-3-13 14:14 编辑
  1. @ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION
  2. TITLE AutoScenario - Created by Xingo.

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

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

  10. IF DEFINED TEMP (
  11.   SET TEMPFILE="%TEMP%\lrslist.tmp"
  12. ) ELSE (
  13.   SET TEMPFILE="lrslist.tmp"
  14. )

  15. IF DEFINED LR_ROOT (
  16.   SET M_ROOT=%LR_ROOT%bin
  17. ) ELSE (
  18.   IF DEFINED LR_PATH (
  19.     SET M_ROOT=%LR_PATH%bin
  20.   ) ELSE (
  21.     ECHO 错误:自动获取路径失败!
  22.     SET M_ROOT=请手动指定LoadRunner\bin路径:
  23.   )
  24. )

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

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

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

  44. %M_ROOT:~,2%
  45. CD %M_ROOT%

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

  57. :End
  58. SET AUTO_PAUSE=
  59. IF EXIST "%TEMPFILE%" DEL /Q "%TEMPFILE%"
  60. SET M_ROOT=
  61. 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”)
  1. @ECHO OFF&SETLOCAL ENABLEDELAYEDEXPANSION
  2. D:
  3. CD TestProject
  4. "C:\AutoScenario.bat" -np
  5. E:
  6. CD Performance
  7. "C:\AutoScenario.bat" -np
  8. ECHO 场景执行完毕。
  9. PAUSE
复制代码
提醒:
之前在9.5版本上自动执行场景有很大的概率出现卡死的情况。
建议大家使用LR11。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-3-4 22:11:32 | 只看该作者
审核真是个麻烦的咚咚。
通过了帖子都沉得找不到了呀。
只好自己沙发了,也没个支持的说。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    3#
    发表于 2011-3-4 23:12:15 | 只看该作者
    很不错!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
     楼主| 发表于 2011-3-4 23:35:23 | 只看该作者
    回复 3# msnshow


        感谢BZ支持!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2012-11-15 16:54:02 | 只看该作者
    这个东西,我找了好久,终于找到了!谢谢Xingo!!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-9 09:51 , Processed in 0.071594 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表