1.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情况下的执行过程。
logingmail------------------------脚本名
|------Action.c
|------logingmail.usr
|------vuser_end.c
|------vuser_init.c :前面四个文件跟具体的logingmail的脚本有关。
|------gloabals.h :全局的头文件
|------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。
4.创建文件 pre_cci.c,它也是 C 文件(pre_cci.c 是在 options.txt 文件中定义的)。创建文件 logfile.log (也是在 options.txt 中定义的),其中包含此进程的所有输出。如果预处理阶段没有问题,则此文件应为空。如果此文件不为空,则几乎可以肯定由于致命错误,下一阶段的编译将失败。该文件再通过编译器编译成中间码,供LR执行器执行。
5.调用 cci.exe C编译器(在安装程序对应的bin目录下),创建与平台相关的伪二进制文件 (logingmail.ci),该文件将由在运行时解释它的虚拟用户驱动程序所使用。cci 会将 pre_cci.c 文件作为输入。文件 pre_cci.ci 是按以下方式创建的:
cci -errout E:\LoadRunner\Testscrīpt\logingmail\logfile.log -c pre_cci.c
6.文件 logfile.log 是包含编译输出的日志文件。
7.文件 pre_cci.ci 此时将重命名为 logingmail.ci(以脚本名命名)。由于编译可能包含警告和错误,而且由于驱动程序不了解此进程的结果,因此驱动程序首先检查 logfile.log 文件中是否存在任何条目。如果存在,它将接着检查文件 logingmail.ci是否已构建。如果该文件的大小不为零,则表示 cci 已成功编译(如果为零,则表示编辑已失败,并将显示错误消息)。
8.相关的驱动程序运行时将把 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系统架构简介

    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. (系统架构)标准Web系统的架构分层

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

  9. dubbo框架----探索-大型系统架构设计(图解)

    对于高并发系统的架构要求: 1. 负载均衡 2.高并发 3.高可用 4.面向服务架构 (Dubbo框架使用) 5.分布式缓存 (redis分布式缓存) 6.分布式全文检索 (solr分分布式全文检索) ...

随机推荐

  1. mysql中char,varchar,text区别总结

    具体对这三种类型的说明不做阐述可以查看mysql帮助文档. char的总结:      char最大长度是255字符,注意是字符数和字符集没关系.可以有默认值,尾部有空格会被截断.varchar的总结 ...

  2. 基于Lumisoft.NET组件的POP3邮件接收和删除操作(转载)

    Lumisoft.NET组件是一个非常强大的邮件发送.邮件接收等功能的开源组件,一般用它来处理邮件的相关操作,是非常合适的.之前也写过一些该组件的随笔文章,不过主要是利用来发送邮件居多,最近由于项目需 ...

  3. PHP GBK UTF8互转

    function gbk_to_utf8($str){     return mb_convert_encoding($str, 'utf-8', 'gbk'); }   function utf8_ ...

  4. Android中的.9.png

      智能手机中经常有自动横屏的功能,同一幅界面在随着手机(或平板电脑)中的方向传感器会改变显示的方向,在界面改变方向后,界面上的图形会因为长宽的变化产生拉伸,造成图形的变形.例如下面一个在竖屏时正常显 ...

  5. 添加网页ico

    <link rel="Shortcut Icon" href="/favicon.ico" />

  6. Spotlight实时监控Windows Server 2008

    Windows Server 2008作为服务器平台已逐渐被推广和应用,丰富的功能和良好的稳定性为其赢得了不错的口碑.但是和Windows Server 2003相比,其系统的自我监控功能并没有多大的 ...

  7. FactoryBean的使用

    一般情况下,Spring通过反射机制利用bean的class属性指定实现类来实例化bean .在某些情况下,实例化bean过程比较复杂,如果按照传统的方式,则需要在<bean>中提供大量的 ...

  8. 数学+高精度 ZOJ 2313 Chinese Girls' Amusement

    题目传送门 /* 杭电一题(ACM_steps 2.2.4)的升级版,使用到高精度: 这次不是简单的猜出来的了,求的是GCD (n, k) == 1 最大的k(1, n/2): 1. 若n是奇数,则k ...

  9. POJ2112 Optimal Milking(最大流)

    先Floyd求牛到机器最短距离,然后二分枚举最长的边. #include<cstdio> #include<cstring> #include<queue> #in ...

  10. 金子上的友情[XDU1011]

    Problem 1011 - 金子上的友情 Time Limit: 1000MS   Memory Limit: 65536KB   Difficulty: Total Submit: 336  Ac ...