Loadrunner系列学习--Loadrunner架构(1)
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 | |
Controller with 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的内部结构.
Loadrunner系列学习--Loadrunner架构(1)的更多相关文章
- ODI 系列学习--整体架构概念
ODI 系列学习--整体架构概念 ODI整体架构没有Oracle Database复杂,因为它属于程序功能的使用,更多是程序开发和配置的工作,当然ODI的优化涉及到很多数据库优化的工作,从整体架构入手 ...
- 【LoadRunner】loadrunner常见问题汇总
LoadRunner常见问题1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消掉 2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen.exe文件 ...
- LoadRunner性能测试-loadrunner工具破解
Loadrunner11破解 破解工具下载:http://pan.baidu.com/disk/home?errno=0&errmsg=Auth%20Login%20Sucess&&a ...
- LoadRunner性能测试-LoadRunner工具安装
Loadrunner11安装 1,在网上下载loadrunner11安装包 (百度可以下载安装包) 2,打开安装文件,点击setup.exe进行安装: 3,win10系统可能会出现如下问题: 提示管理 ...
- 【Loadrunner】Loadrunner 手动关联技术
Loadrunner 手动关联技术 录制成功,回放失败,怀疑和动态数据有关: 1 重新录制一份脚本,两次录制的脚本进行比对,确定动态数据,复制动态数据: 2 找到第一次产生该动态数据的响应对应的相应 ...
- 【Loadrunner】Loadrunner Vuser 两种运行方式【error:not enough memory解决方案】
Loadrunner Vuser 两种运行方式 报错如下解决方案: 报错原因:都消息内存,之前用户是按线程跑,一个进程开了多个线程,其中有部分内存是这些线程共享的,出错应该是内存出现冲突了不够用了.现 ...
- LoadRunner性能测试-loadrunner事务
事务(Transaction): 简单来说就是用来模拟用户的一个相对完整的业务过程.添加事务,是用来衡量响应时间的重要方法.我们可以通过事务计时来对不同压力负载下的性能指标进行对比. 插入事务的方法: ...
- 转:loadrunner经典面试题
在LoadRunner中为什么要设置思考时间和pacing 答: 录制时记录的是客户端和服务端的交互,如果要精确模拟 用户的行为,那么客户操作客户端时花费了很多时间要怎么模拟呢?录入 填写提交的内容, ...
- LoadRunner面试题
在LoadRunner中为什么要设置思考时间和pacing 答: 录制时记录的是客户端和服务端的交互,如果要精确模拟 用户的行为,那么客户操作客户端时花费了很多时间要怎么模拟呢?录入 填写提交的内容, ...
随机推荐
- bitset简单用法
bitset的创建: #include<bitset> bitset<32> ar; //默认全为0 bitset<32> ar(n); //n的二进制 bitse ...
- 由于某些原因无法博客搬家,现在换马甲了 http://blog.csdn.net/qq_32066409
由于位置原因无法博客搬家,现在换马甲到csdn了地址如下http://blog.csdn.net/qq_32066409
- 20140329 自由 youtube
1.人生入戏,全靠演技:人生苦短,必须性感 2.youtube修改用户名 3.使用代理软件修改了IE的代理导致上不了网
- 分道扬镳 /// 邻接表 DFS 剪枝 oj1332
题目大意: 编号为1…N 的N个城市之间以单向路连接,每一条道路有两个参数:路的长度和通过这条路需付的费用. Bob和Alice生活在城市1,但是当Bob发现了Alice玩扑克时欺骗他之后,他决定与她 ...
- docker集群管理之swarm
一.简介 docker集群管理工具有swarm.k8s.mesos等,我所用到的是swarm和k8s,这篇文章主要介绍swarm:swarm是docker集成的原生 管理工具,只要你安装上docker ...
- D3.js比例尺 序数比例尺(v3版本)
上一章介绍了阈值比例尺:https://www.cnblogs.com/littleSpill/p/10825038.html.到目前所有的定量比例尺已经介绍完了. 现在给大家介绍一下序数比例尺. 定 ...
- vue 报错:Cannot read property '__ob__' of undefined
我的原因:引入组件后未注册 <script> import ComFirst from "../../components/ComFirst.vue" import C ...
- 3、docker 容器管理
Docker容器相对于OpenStack的云主机实例,虽然他们本质上不同.我们需要基于镜像来创建容器.容器是独立运行的一个或一组应用,以及它们的运行环境.对应的,虚拟机可以理解为模拟运行的一整套操作系 ...
- Redis本地集群搭建(5版本以上)
Redis本地集群搭建(5版本以上) 2019年11月3日10:05:48 步骤 1.下载安装Redis的安装包 2.复制5份,一共6份Redis的解压安装版,修改每个Redis节点的端口并开启节点 ...
- this 、typeof、false、parseInt()、this、arguments、Array和object判断
typeof typeof (undefined) 不会报错 undefined object Number boolean function String 返回值为字符串类型 false .fals ...
