LoadRunner系统架构简介:

LoadRunner是通过创建虚拟用户来代替真实实际用户来操作客户端软件比如Internet Explorer,来向IIS、Apache等Web服务器发送HTTP协议请求。通过Load Generators可以产生大量的虚拟的客户端请求,已达到产生各种不同服务(根据协议的不同而不同)的负载。这些负载生成器都通过Controller来进程启动和停止控制的。而Controller通过由一组涉及到具体的运行设置的脚本的“场景”来控制具体的负载的运行。脚本的创建是通过VUGen(Virtual user scrīpt Generator)来实现的,VUGen支持创建基于C语言的脚本,这些脚本被虚拟用户执行后可以捕获Internet应用程序的客户端和服务端之间的网路流量详细情况。如果是Java客户端,VUGen则通过客户端JVM来捕获相关信息。在运行期间,每台负载机的运行情况是通过Controller来控制的。当每一次执行结束后,Controller通过从负载生成机收集监控到的完整的相关日志信息,并确保这些信息能够被Analysis正确分析。而Analysis则支持通过分析收集的相关日志信息来生成各种形式的含有图形的结果报告,比如Word、Crystal 报告或者一份HTML形式报告。对于由Analysis产成每一份HTML形式的报表页均包含含有结果的文件连接,而这些文件可以通过Excel来打开进行其他额外的数据分析。运行期间产生的错误信息都存储在一个能通过Access读取访问的数据库中。

2.运行原理:

假设已经录制好一个基于HTTP协议的采用URL方式录制的脚本,脚本命名为logingmail。下面针对这个来剖析下这样一个脚本有哪些文件组成,以及脚本在单个Vuser情况下的执行过程。
    |------Action.c
    |------vuser_init.c    :前面四个文件跟具体的logingmail的脚本有关。
    |------default.cfg     :默认的录制选项的配置文件    |------default.usp     :默认的运行选项的配置文件?    |------data            :具体的数据文件夹

1.创建 options.txt 文件,其中包含预处理器需要的命令行参数。2.创建 combined_logingmail.c(说明,都是以combined_打头加上具体的脚本名),其中包含对所有相关 .c 和 .h 文件的"include"。3.调用 c 预处理器 cpp.exe(LR自己的开源的C预处理器,在安装程序对应的bin目录下),以便在开发文件中“填充”所有宏定义、预编译器指令等,cpp.exe 是一个共享可执行程序,与早期有问题的版本完全不同。它使用了以下命令行:cpp -f options.txt。
创建文件 pre_cci.c,它也是 C 文件(pre_cci.c 是在 options.txt 文件中定义的)。创建文件 logfile.log (也是在 options.txt 中定义的),其中包含此进程的所有输出。如果预处理阶段没有问题,则此文件应为空。如果此文件不为空,则几乎可以肯定由于致命错误,下一阶段的编译将失败。该文件再通过编译器编译成中间码,供LR执行器执行。
调用 cci.exe C编译器(在安装程序对应的bin目录下),创建与平台相关的伪二进制文件 (logingmail.ci),该文件将由在运行时解释它的虚拟用户驱动程序所使用。cci 会将 pre_cci.c 文件作为输入。文件 pre_cci.ci 是按以下方式创建的:
 E:/LoadRunner/Testscrīpt/logingmail/logfile.log -c pre_cci.6.文件 logfile.log 是包含编译输出的日志文件。7.文件 pre_cci.ci 此时将重命名为 logingmail.ci(以脚本名命名)。由于编译可能包含警告和错误,而且由于驱动程序不了解此进程的结果,因此驱动程序首先检查 logfile.log 文件中是否存在任何条目。如果存在,它将接着检查文件 logingmail.ci是否已构建。如果该文件的大小不为零,则表示 cci 已成功编译(如果为零,则表示编辑已失败,并将显示错误消息)。
相关的驱动程序运行时将把 logingmail.usr 文件和 logingmail.ci文件作为输入。例如:
mdrv.exe -usr ...省略了路径/logingmail.usr -out 工作路径 -file ...省略了路径/logingmail.ci,需要有 .usr 文件,因为它将通知驱动程序正在使用的数据库。这样,便可以了解运行时需要加载哪些库。
9.调用执行器mmdrv.exe执行。执行时创建 output.txt 文件,存放运行的所有输出消息。此输出与 VuGen 运行时输出窗口以及 VuGen 主窗口下半部分显示的输出相同。
10.运行单个Vuser的脚本时,Vuser ID始终为-1。

【转帖】LoadRunner系统架构简介的更多相关文章

  1. LoadRunner系统架构简介

    1.LoadRunner系统架构简介 LoadRunner是通过创建虚拟用户来代替真实实际用户来操作客户端软件比如Internet Explorer,来向IIS.Apache等Web服务器发送HTTP ...

  2. LoadRunner系统架构简介与运行原理

    1.LoadRunner系统架构简介 LoadRunner是通过创建虚拟用户来代替真实实际用户来操作客户端软件比如Internet Explorer,来向IIS.Apache等Web服务器发送HTTP ...

  3. android 系统架构简介

    Android系统采取的是分层的架构,根据官方文档提供的架构图,我们将android的系统架构分成5层,如图: 1.Application Framework (应用框架) application f ...

  4. Kubernetes系统架构简介

    1. 前言 Together we will ensure that Kubernetes is a strong and open container management framework fo ...

  5. Kubernetes系统架构简介--转

    原文地址:http://www.infoq.com/cn/articles/Kubernetes-system-architecture-introduction?utm_campaign=infoq ...

  6. Android系统简介(中):系统架构

    Android的系统架构栈分为4层,从上往下分别是Applications.Application framework.Libraries  & Android Runtime.Linux  ...

  7. Android系统架构及内核简介

    (来源于ThinkPHP) Android是Google公司开发的基于Linux平台的开源手机操作系统,它包括操作系统.中间件.用户界面和应用程序,而且不存在任何以往阻碍移 动产业创新的专利权障碍,并 ...

  8. 【转帖】Linux 内核系统架构

    Linux 内核系统架构   描述Linux内核的文章已经有上亿字了 但是对于初学者,还是应该多学习多看,毕竟上亿字不能一下子就明白的. 即使看了所有的Linux 内核文章,估计也还不是很明白,这时候 ...

  9. (系统架构)标准Web系统的架构分层

    标准Web系统的架构分层 1.架构体系分层图 在上图中我们描述了Web系统架构中的组成部分.并且给出了每一层常用的技术组件/服务实现.需要注意以下几点: 系统架构是灵活的,根据需求的不同,不一定每一层 ...

随机推荐

  1. js报错 object is not a function

    主要是js函数名重名了,重命名就可以了.

  2. eclipse 创建 user library 方法

    1.Window - Preferences - Java - Build Path - User Libraries 2.新建 UserLibraries 3. 4.重复上一步依次添加需要的jar文 ...

  3. Azure 5 月新公布(二)

    Azure 5 月新发布(二):CDN 图片处理功能, CDN Restful API, 新版 CDN 管理门户, 计量名称变更延期  Azure CDN 图片处理功能开放公共预览版 Azure CD ...

  4. aaS软件的必要特征分析,一定是多租户特性吗

    本篇文章讲述了SaaS软件的必要特征一定是多租户特性?对于许多小型企业来说,SaaS是采用先进技术的最好途径,它消除了企业购买.构建和维护基础设施和应用程序的需要 课课家教育平台提醒各位:本篇文章纯干 ...

  5. UE4工具

    COMMON CONTAINERS TARRAY (Engine\Source\Runtime\Core\Public\Containers\Array.h) TSET (Engine\Source\ ...

  6. hdu-2852 KiKi's K-Number---二分+树状数组

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2852 题目大意: 题意:    给出三种操作,    0 在容器中插入一个数.    1 在容器中删 ...

  7. redis 有序集合类型

  8. mac jdk profile 永久的配置

    配置java_home 在MAC中设置JAVA_HOME环境变量 环境变量要再etc目录下的profile文件中配置,这样才是永久的配置. cd /etc vi profile 按 i 键进入写模式 ...

  9. A Multigrid Tutorial中涉及到的难点词汇

    Multigrid Tutorial中涉及的词汇: Elliptic PDEs 椭圆型偏微分方程 Lawrence Livermore National Laboratory 劳伦斯利福摩尔国家实验室 ...

  10. 第3章 如何用DAP仿真器下载程序—零死角玩转STM32-F429系列

    第3章     如何用DAP仿真器下载程序 集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege ...