LoadRunner内部结构

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:
1,              被测系统是由驱动进程mdrv.exe(多线程驱动的进程)r3vuser.exe来产生压力的,其中r3vuser.exe仿真应用程序的客户端,如IE浏览器。它执行了三个主要的操作:
       Kli> cpp (C 语言pre-processor)
       1cci C语言编译器),建立ci文件,然后使用被测系统的协议相关的驱动来执行。
 
通过在Windows批处理脚本中启动Mdrv.exe来默默地启动运行。
Mdrv能自动停止加载Vuser,因为他们与VuserWindows负载生成器上的CPU使用监视器之间互相通信。
Windows机器上,对于每一个基于JavaVuser都有一个独立的JVM
2,              虚拟用户通过在负载生成器客户端机器上使用agent3900 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工作之后保存LoadRunnerini文件然后使用记事本来制作一个批处理文件在执行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中定义的每个虚拟用户进行的操作是用LoadRunnerVuGen.exe生成的当这个程序启动后它在windows文件夹下存储了comparamui.INI文件来保存[LastTablesUsed]下面文件的历史,并且保存由Insert > New Parameter > Dates 菜单指定的[ParamDialogDates].
VuGenWindows文件夹下存储和检索vugen.ini文件.当使用JAVA的时候,需要添加一些其他的调试选项:
[DynaDlg] 
JavaLevel=3
当在VuGen 8.1中使用8.0的脚本Vugen.ini中加入信息:
[Editor] 
OLDEDITOR = 1
VuGenLR文件夹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,也叫分析文档文件,由分析程序来读取并且显示百分位图表.




本文转自 fish_yy 51CTO博客,原文链接:http://blog.51cto.com/tester2test/137715,如需转载请自行联系原作者

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
10月前
|
存储 Linux API
Linux应用开发基础知识——文件IO操作(三)
Linux应用开发基础知识——文件IO操作(三)
111 2
Linux应用开发基础知识——文件IO操作(三)
|
9月前
|
JSON Java 测试技术
一篇文章讲明白loadrunner
一篇文章讲明白loadrunner
68 0
|
9月前
|
SQL 缓存 测试技术
一篇文章讲明白LoadRunner:参数化
一篇文章讲明白LoadRunner:参数化
364 0
|
10月前
|
算法 Java
深入浅出JVM(十六)之三色标记法与并发可达性分析
深入浅出JVM(十六)之三色标记法与并发可达性分析
|
10月前
|
监控 安全 Java
JVM工作原理与实战(三十八):JIT即时编译器原理
JVM作为Java程序的运行环境,其负责解释和执行字节码,管理内存,确保安全,支持多线程和提供性能监控工具,以及确保程序的跨平台运行。本文主要介绍了JIT即时编译器、HotSpot中的JIT编译器、JIT优化技术、JIT优化建议等内容。
172 0
《JavaSE-第四章》之程序逻辑控制
《JavaSE-第四章》之程序逻辑控制
127 0
|
存储 并行计算 程序员
初识openmp 编写简单程序并评价其性能
初识openmp 编写简单程序并评价其性能
初识openmp 编写简单程序并评价其性能
|
算法
递归模拟演示--栈--《数据结构与算法》
递归模拟演示--栈--《数据结构与算法》
132 0