LoadRunner内部结构

1,             被测系统是由驱动进程 mdrv.exe( 多线程驱动的进程 ) r3vuser.exe 来产生压力的,其中 r3vuser.exe 仿真应用程序的客户端,如 IE 浏览器。它执行了三个主要的操作:
       Kli> cpp (C 语言 pre-processor)
       1 cci C 语言编译器),建立 ci 文件,然后使用被测系统的协议相关的驱动来执行。
 
通过在 Windows 批处理脚本中启动 Mdrv.exe 来默默地启动运行。
Mdrv 能自动停止加载 Vuser ,因为他们与 Vuser Windows 负载生成器上的 CPU 使用监视器之间互相通信。
Windows 机器上,对于每一个基于 Java Vuser 都有一个独立的 JVM
2,             虚拟用户通过在负载生成器客户端机器上使用 agent 3900 magentproc.exe )作为服务或者进程来按照组(在指定的负载生成器上运行相同脚本的虚拟用户的集合)启动虚拟用户。
3,             每一个拥有代理的机器维护一个在 .qtp 文件中的执行日志
4,             当日志被启用后,代理同样会在结果文件中为每一个虚拟用户(由虚拟用户组分开)建立一系列日志文件。
5,             在执行过程中, 这些文件可以通过在 Controller 机器上的 view > Show Output 窗口中显示。
6,             在预先设置延时上, Controller 上运行的 Scheduler 指导代理 ( 通过 Windows 54345 端口 , 或者 Unix 上的动态端口 ) 去初始化场景会话 .Controller(wlrun.exe) 在请求中发送一份场景的拷贝 .
7,             代理是由每一个负载生成器上的 Remote Agent Dispatcher 进程 ( 以前叫 Remote Command Launcher(RCL)) 启动的 .
8,             每一个根据场景 (.lrs) 定义文件中设置的代理来决定哪一个虚拟用户组和脚本需要在主机上运行 .
      ## 这就是说 Controller 可以从 DOS 的批处理文件 (.batch) 中启动 .
  REM Start Controller:
SET M_ROOT=C:\Program Files\Mercury Interactive\LoadRunner\bin
cd %M_ROOT%
wlrun.exe -TestPath D:\Dev\Dev1.lrs -port 8080 -Run -DontClose
l       包含的 -Run 参数与手动的点 开始场景 自动运行是一样的 . 这不是一个很好的方法 , 因为你可能需要决定从以前的运行中收集文件或者想改变输出文件夹 .
l       这是假设系统环境变量 PATH 已经被更新了 , 包括 LoadRunner 的安装 .
9, Controller 通过使用    Windows 操作系统文件夹里的参数值来启动 . 因为 LoadRunner 被设计成在一个机器上一次只能运行一个 Controller 实例 , 所以需要使用 Windows 文件夹 .
 ## 为了在几个应用之间快速的切换 , Controller 工作之后保存 LoadRunner ini 文件 , 然后使用记事本来制作一个批处理文件 . 在执行 wlrun 之前拷贝应用程序的指定版本的 ini 文件 . 下面是一个应用程序文件拷贝的例子 :
copy %WinDir%/wlrun7-XXX.ini   %WinDir%/wlrun7.ini
copy %WinDir%/wlrun7-XXX.dft   %WinDir%/wlrun7.dft
需要修改一些默认值 :
l       wlrun7.ini文件的 output 区域 , MaxNumberOfOutputMessages= from 10000 to 100000, 这就限制了存储在数据库中的输出信息的数目 .
l       MaxOutputUIRowsToShow 限制了在 Controller 的输出窗口中显示的信息 / 错误行总数 .
l       LoadRunner 程序文件的 dat\protocols       文件夹下的 QTWeb.lrp 文件的 [Vugen] 部分 , 添加一个 MaxThreadPerProcess=5 来限制由每个负载生成器 mdrv.exe 进程管理的线程数 .
l       存储在 wlrun5.ini wlrun7.dft 文件中的 DefaultScenarioDir, DefaultscrīptDir, DefaultResultDir , [Recent File List] 几个数据的值会在每次 Controller 改变的时候更新。
10,             Vu scrīpts 中定义的每个虚拟用户进行的操作是用 LoadRunner VuGen.exe 生成的 . 当这个程序启动后 , 它在 windows 文件夹下存储了 comparamui.INI 文件来保存 [LastTablesUsed] 下面文件的历史 , 并且保存由 Insert > New Parameter > Dates 菜单指定的 [ParamDialogDates].
VuGen Windows 文件夹下存储和检索 vugen.ini 文件 . 当使用 JAVA 的时候 , 需要添加一些其他的调试选项 :
[DynaDlg]
JavaLevel=3
当在 VuGen 8.1 中使用 8.0 的脚本 , Vugen.ini 中加入信息 :
[Editor]
OLDEDITOR = 1
VuGen LR 文件夹 template/qtweb default.cfg 和脚本文件里打开 .
Vu scrīpts 可以使用脚本外部的参数文件来获得的变量值进行编码 .
更多关于 VuGen 的信息请看脚本编写的章节 .
11. 运行过程中 , 执行结果存储到一个结果文件夹中 .
     我喜欢在场景执行中把结果设置成自动产生结果 . 这样 ,LoadRunner 会在每次启动一个场景之后自动产生一个子增的结果名 . 例如 , 结果名称 Res1 会自动增长到 Res12 或有时候是 R   es11-1.
错误被写到 output.mdb 微软 Access 数据库中。
12. 在每一个结果文件夹中 , 程序自动创建 Log 文件夹来包含每个组的日志文件 . 运行之后 , Controller 中查看日志文件 , , . 然后在组中点右键 , 选择 Show Vuser Log
13. 场景运行的时候 , 监视器在本地维护每个主机的计数器 .
14. 运行完成之后 , "collate" 进程处理 .eve .lrr 结果文件 , 并且在结果文件夹下创建一个临时的 .mdb 数据库 .
在处理大数据量的结果时 , 为了防止错误发生 , 使用 MSDE. ……
15. 分析模块 (8,320K analysisu.exe) 使用 mdb 数据库中的数据来产生分析图表和报告 .
16. 每一次场景运行后的结果文件 results_name.lrr , 也叫分析文档文件 , 由分析程序来读取并且显示百分位图表 .

你可能感兴趣的:(原理,工具,性能测试,loadrunner,内部结构)