LoadRunner内部结构(1)

根据http://www.wilsonmar.com/1loadrun.htm  翻译:

LoadRunner内部结构

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 AgentDispatcher进程(以前叫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.iniwlrun7.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/qtwebdefault.cfg和脚本文件里打开.

Vu scrīpts可以使用脚本外部的参数文件来获得的变量值进行编码.

更多关于VuGen的信息请看脚本编写的章节.

11.运行过程中,执行结果存储到一个结果文件夹中.

   我喜欢在场景执行中把结果设置成自动产生结果.这样,LoadRunner会在每次启动一个场景之后自动产生一个子增的结果名.例如,结果名称Res1会自动增长到Res12或有时候是R  es11-1.

错误被写到output.mdb微软的Access数据库中。

12.在每一个结果文件夹中,程序自动创建Log文件夹来包含每个组的日志文件.运行之后,在Controller中查看日志文件,点,.然后在组中点右键,选择“ShowVuser Log”

13.场景运行的时候,监视器在本地维护每个主机的计数器.

14.运行完成之后,"collate"进程处理.eve和.lrr结果文件,并且在结果文件夹下创建一个临时的.mdb数据库.

在处理大数据量的结果时,为了防止错误发生,使用MSDE. ……

15.分析模块(8,320K analysisu.exe)使用mdb数据库中的数据来产生分析图表和报告.

16.每一次场景运行后的结果文件results_name.lrr,也叫分析文档文件,由分析程序来读取并且显示百分位图表.

 

转自:http://www.51testing.com/html/66/34866-72811.html

LoadRunner内部结构(1)的更多相关文章

  1. LoadRunner内部结构

    转载自:http://blog.sina.com.cn/s/blog_6da75b980100n2nv.html   英文版地址: http://www.rickyzhu.com/21_princip ...

  2. LoadRunner内部结构(转)

    LoadRunner内部结构 1,            被测系统是由驱动进程mdrv.exe(多线程驱动的进程)和r3vuser.exe来产生压力的,其中r3vuser.exe仿真应用程序的客户端, ...

  3. LoadRunner内部结构(2)

    LoadRunner内部结构(2) 接着(1)的内容: 17.默认的LRReport文件夹创建在本地分析机器的My Documents文件夹下来存储分析会话文件. 18.可以使用HTML格式 19.格 ...

  4. Loadrunner系列学习--Loadrunner架构(1)

    Loadrunner系列学习--Loadrunner架构(1) 最近在学习Loadrunner,发现一个英文网站http://www.wilsonmar.com/1loadrun.htm里面介绍的比较 ...

  5. 【云知道】LoadRunner 录制问题集锦

    关键词:各路录制小白汇集于此 虽然知道君对录制不感冒,但总是看到扎堆的人说这些问题,忍不住要站出来了. 百度虽好,帮助了很多小白,但关键是百度并没有排除错误内容,经过历史的几年传播,错的都快变对的了, ...

  6. 【云知道】究极秒杀Loadrunner乱码

    Loadrunner乱码一击必杀 之前有介绍一些简单的针对Loadrunner脚本或者调试输出内容中乱码的一些设置,但是并没能完全解决一些小伙伴的问题,因为那些设置实在能力有限,还是有很多做不到的事情 ...

  7. LoadRunner函数百科叒叒叒更新了!

    首先要沉痛通知每周四固定栏目[学霸君]由于小编外派公干,本周暂停. 那么这周就由云层君来顶替了,当然要要说下自己做的内容啦,DuangDuang! <LoadRunner函数百科>更新通知 ...

  8. Loadrunner Http Json接口压力测试

    前天接到了一个测试任务,要求测试一下ES(elsticsearch)在不同并发下的查询效率.如图: 业务场景是在客户端根据具体车牌查询相关车辆信息,结果返回前10条记录. 从图中可以看到,接口的请求参 ...

  9. LoadRunner免费公开课,惠普金牌讲师亲授

    [开课时间]:9月13日 下午2:00—4:00(暂定)[活动费用]:免费[主办单位]:慧都学院[课程形式]:网络在线公开课 LoadRunner简介惠普软件测试解决方案LoadRunner测试实例答 ...

随机推荐

  1. 知识整理:字符串hash

    字符串hash唯一用途是快速判断两字符串是否相等,但存在极小概率假阳性(本来不相等,但算法返回相等). 根本思想是把一个字符串转换为一个整数,要求相同的字符串,对应的这个整数相同,不同的字符串,对应的 ...

  2. hdu多校第八场 1010(hdu6666) Quailty and CCPC 排序/签到

    题意: CCPC前10%能得金牌,给定队伍解题数和罚时,问你有没有一个队伍如果向上取整就金了,四舍五入就银了. 题解: 排序后按题意求解即可. #include<iostream> #in ...

  3. P1566 加等式

    P1566 加等式 题目描述 对于一个整数集合,我们定义“加等式”如下:集合中的某一个元素可以表示成集合内其他元素之和.如集合{1,2,3}中就有一个加等式:3=1+2,而且3=1+2 和3=2+1是 ...

  4. hexo next主题深度优化(四),自定义一个share功能,share.js。

    文章目录 背景: 开始: 引入资源: 代码 关键的一步 附:方便学习的小demo 一次成功后还出现上面的bug 结束 2018.12.23发现bug(读者可忽略) 个人博客:https://mmmmm ...

  5. <router-link :to="...">

    一.<router-link :to="..."> to里的值可以是一个字符串路径,或者一个描述地址的对象.例如: // 字符串<router-link to=& ...

  6. QT5+Pylon

    VS+QT+Pylon:配置一下包含文件和libs,具体参考pylon说明文档. Windows下  Qtcreator+Pylon:建议把include和libs文件夹拷贝至工作目录,然后修改.pr ...

  7. 一个很SB的方法,来开始调一个刚启动就SB的程序

    自己鼓捣的方法,累死我了... 遇到一个程序,这程序启动之后,会自动重新启动我的电脑, 我想调试它一下,但是遇到了问题, 如果我用调试器附加上去的话,电脑是不重起了,但是它启动了之后会立刻黑屏,全黑, ...

  8. Selenium(二)---无界面模式+滑动底部

    一.使用无界面模式 1.正常情况启动 selenium 是有界面的 2.有些情况下,需要不显示界面,这时只要设置一下参数就可以实现了 # 不想显示界面可以用 Chrome——配置一下参数就好 from ...

  9. WebApi 路由机制剖析

    阅读目录 一.MVC和WebApi路由机制比较 1.MVC里面的路由 2.WebApi里面的路由 二.WebApi路由基础 1.默认路由 2.自定义路由 3.路由原理 三.WebApi路由过程 1.根 ...

  10. NLP杂点

    1.停用词 stop words: 在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词. 停用词都是人工输入.或者由一个停用词表导入. 2.jieba是目前最好的 Python 中文分词组件 ...