Loadrunner系列学习--Loadrunner架构(1)
最近在学习Loadrunner,发现一个英文网站http://www.wilsonmar.com/1loadrun.htm里面介绍的比较全面,这里把英文内容简单翻译下,一是加深自己的理解,另外也帮助不喜欢看英文的朋友学习下这些文章.因为是边看就直接翻译了,可能有不通顺或者翻译不准确的地方,希望大家能提出,谢谢.
一:Loadrunner结构概述
Loadrunner通过使用虚拟用户代替真实用户操作客户端软件来工作的,例如使用IE对IIS或者Apache Web服务器发送HTTP请求.
多个虚拟用户客户端的请求是有负载生成器(Load Generator)产生的,目的是对不同类型的被测服务器产生负载.
这些负载生成器代理(load generator agent )是由Mercury's的控制器(Controller)来控制启动或停止的.
控制器根据由编译的脚本引起的场景(Scenarios)和相关的运行时设置(Run-time Settings)来控制负载测试的运行.
这些脚本是由虚拟用户脚本生成器(Virtual user scrīpt Generator)也叫VUGen生成的.它是通过截获网络应用程序的客户端和服务器之间的网络通信包而产生的C语言脚本,这些脚本可以被虚拟用户执行.
对于Java客户端,VuGen通过客户端的JVM的钩子技术来捕获请求.
在运行时,每个机器的状态由控制器监控.
运行结束后,控制器把监视日志和右负载生成器产生的日志结合起来给分析器(Analysis)使用.分析器能够把这些日志生成结果报表和Microsoft Word格式的图表,水晶报表或HTML格式页.
每一个由分析器生成的HTML报表页包括一个到结果的超链接,这些结果文件可以用Microsoft Excel打开来进行其他的分析.
运行时产生的错误都被存储在一个数据库中,该数据库可以用Microsoft Access打开.
虚拟用户:
不象WINRUNNER那样只能模拟一个客户端用户,LOADRUNNER能够模拟成千上万的虚拟用户.
负载生成器由VnGen脚本控制.这些脚本是使用跟被测客户端一样的协议产生的非GUI的API函数.但是WINRUNNER是使用GUI用户来模拟被测客户端的键盘输入,鼠标点击和其他用户接口的操作,而且只能运行一个GUI用户.而LOADRUNNER终端服务管理器(LoadRunner Terminal Services Manager)管理使用终端服务代理来管理远程机器并且能登陆到客户端终端服务的会话.
运行的时候,线程类型的虚拟用户共享一个公用的内存池.所以线程方式可以使每个负载生成器支持更多的虚拟用户.
所有负载生成器上的虚拟用户的状态是从"Running"开始的,然后在运行完脚本的init部分后变为"Ready".虚拟用户的"Finished"有通过或者失败的结束状态.当负载生成器负载过重时虚拟用户自动的"Stopped".
监控标准的Web(HTTP)服务器(Apache, IIS, and Netscape)不需要额外的license.
为了能够监控使用SOAP和XML的Web Services,需要一个独立的 license,并且虚拟用户需要Web Services插件.该插件被Feature Pack(FP1)安装.
产品版本:略
应用程序组件需求
应用程序 | 程序进程名称 | V9 | V8.0 Img KB | File Size | |
---|---|---|---|---|---|
- | LRLauncherApp.exe | 15,840 | 16,288 | n/a | |
Virtual User Generator | VuGen.exe | 23,980 | 12,436 | 2,334,769 | |
Controllerwith On-Line Monitors | wlrun.exe | 61,312 | 13,076 | 5,681,215 | |
Load Generator Agent | magentproc.exe | 3,336 | 3,236 | ||
magentservice.exe | 3,496 | 65,536 | |||
mdrv.exe | - | ||||
Analysis | Analysisui.exe | 64,460 | 13,132 | 6,058,496 | |
Tuning Console | protune.exe | - | 3,403,833 |
控制台程序:
perl5.8.0.exe | Interpreter | 20,535 |
regtlb.exe | registers the batch automation type library | 30,720 |
sed.exe | GNU sed (gsed) version 2.05 | 55,296 |
wdiff.exe | Compares text files | 197,632 |
使用WINDOWS远程桌面连接
为了使WINDOWS远程桌面连接会话在测试时不会超时,每个机器的终端服务应该如下配置:
1.开始-->程序(或者控制面板),管理工具下选择终端服务配置.
2.打开树型的连接文件夹
3.右击RDP-Tcp,选择属性.
4,点会话标签页.
5,确保选中"Override user settings"
6.设置空闲会话限制为最大2天来代替默认的2个小时.
7,点应用.
8.OK
注意:确保上面的做法没有影响到公司的安全策略.
注意:终端用户只能允许两个活动的连接.断开会话的时候使用开始-->退出,而不要点远程桌面的"X"关闭.
LR的安装和配置:略
应用程序文件的位置:(省略部分介绍)
可以使用环境变量来快速获得LR的安装路径,如环境变量为"LR81",你可以使用
cd %lr81%
WINDOWS文件夹下的文件:
1.路径存储在wlrun.ini文件中的[ProductEnv]下作为M_ROOT.该文件在C:WINNT (或 C:Windows)
2.C:WINNT (或 C:Windows)下同样存有安装时的Maintenance Number (MPN),存在mercury.ini文件中.
其他省略.
好了,今天先翻译到这里了,该吃中午饭了,哈哈,下期会翻译LOADRUNNER的内部结构.