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
,
也叫分析文档文件
,
由分析程序来读取并且显示百分位图表
.