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 答: 录制时记录的是客户端和服务端的交互,如果要精确模拟 用户的行为,那么客户操作客户端时花费了很多时间要怎么模拟呢?录入 填写提交的内容, ...
随机推荐
- 牛客多校第七场 C Governing sand 线段树
题意: 有一个树林,树林中不同种类的树有不同的数量,高度,砍伐它们的价格.现在要求砍掉一些树,使得高度最高的树占剩下的树的总数的一半以上,求最小花费. 题解: 用线段树维护不同种类树的信息,叶子节点从 ...
- row_number() over(partition by a order by b desc) rn 用法
转载于:http://www.blogjava.net/kxbin/articles/360195.html 可以看看http://jingyan.baidu.com/article/9989c746 ...
- KEIL, MDK 关于C99结构体变量初始化
C99:here 例如声明了这样的结构体 void test1() { tt_t t1 ={ .a = , .d = 'd', .b = , .c = }; static tt_t t2 = { ,, ...
- CodeForces 1152D Neko and Aki's Prank
说明 Catalan(i) 表示卡特兰数的第 i 项. 题目链接:http://codeforces.com/problemset/problem/1152/C 题目大意 有 n 个左括号和 n 个右 ...
- this.$router.go()和this.$router.push()的差别
1.this.$router.go(val) => 在history记录中前进或者后退val步,当val为0时刷新当前页面. 2.this.$router.push(path) => 在h ...
- git ssh使用公钥授权怎么都不通过
前提: 1.客户端生成了id_rsa.pub和id_rsa 2.服务端在.ssh/authorized_keys也加入了客户端的id_res.pub 3./etc/ssh/sshd_config开启了 ...
- Spring MVC入门示例(1)
1.新建一个Java Web项目 2.导入jar包 3.在WEB-INF下面建一个hello.jsp页面. 1 <%@ page language="java" import ...
- CSIC_716_20191116【常用模块的用法 time ,datetime, random, os, sys, hashlib】
import time import datetime import os import sys import random import hashlib time模块 时间戳(Timestamp) ...
- python 使用字符串
字符串方法 string.digits:包含数字0-9的字符串 string.letters:包含所有字母(大写或小写)的字符串 string.lowercase:包含所有小写字母的字符串 strin ...
- Windows taskkill
TASKKILL [/S system [/U username [/P [password]]]] { [/FI filter] [/PID processid | /IM imag ...
