LoadRunner系统架构简介与运行原理
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。
转载于:https://www.cnblogs.com/yezhaohui/p/3147489.html
LoadRunner系统架构简介与运行原理相关推荐
- Spark大数据技术与应用 第一章Spark简介与运行原理
Spark大数据技术与应用 第一章Spark简介与运行原理 1.Spark是2009年由马泰·扎哈里亚在美国加州大学伯克利分校的AMPLab实验室开发的子项目,经过开源后捐赠给Aspache软件基金会 ...
- spark on yarn 完全分布式_Spark编程笔记(1)-架构基础与运行原理
引言 根据IBM前首席执行官郭士纳的观点,IT领域每隔十五年就会迎来一 次重大变革 .当前我们正处于第三次信息浪潮(2010年前后),物联网.云计算和大数据技术突飞猛进. 信息爆炸是我们当前所需要解决 ...
- Servlet简介及其运行原理
Servlet简介及其运行原理: 1.Servlet是什么? Java Servlet是运行在Web服务器或应用服务器上的程序,它是作为来自Web浏览器或者其他HTTP客户端的请求和HTTP上 ...
- 大数据开发:MongoDB系统架构简介
MongoDB作为NoSQL数据库,基于分布式环境的场景下,对于系统架构的性能是要求比较高的.面对分布式场景下的大规模数据存储,MongoDB以文档型存储任务为主.今天的大数据开发学习分享,我们就来讲 ...
- php yii框架原理,Yii框架快速入门[Yii简介及运行原理]
Yii是一个基于组件.用于开发大型 Web 应用的 高性能 PHP 框架.采用严格的 OOP 编写,Yii 使用简单,非常灵活,具有很好的可扩展性.Yii官方下载 包含特性 1. MVC.DAO/Ac ...
- Saturn分布式调度之系统架构简介
VOL 134 12 2020-06 今天距2021年202天 这是ITester软件测试小栈第134次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上 ...
- Camera i2c、常见概念、系统架构简介
1.Cmera I2C介绍 I2C总线协议 I2C总线在物理连接上比较简单,分别由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成.通信原理是通过对SCL和SDA线高低电平时序的控制,来产生I ...
- Kubernetes系统架构简介
from: http://www.infoq.com/cn/articles/Kubernetes-system-architecture-introduction 作者 杨章显 Kubernetes ...
- Kubernetes系统架构简介--转
原文地址:http://www.infoq.com/cn/articles/Kubernetes-system-architecture-introduction?utm_campaign=infoq ...
最新文章
- 基于先验时间一致性车道线的IPM相机外参标定
- ORACLE TEXT DATASTORE PREFERENCE(四)
- mysql 修复表 阿里云_MySql数据表修复方法-阿里云开发者社区
- ARC068C - Snuke Line
- Cogs 376. [IOI2002]任务安排(后效性DP)
- Redis--Windos下的安装和使用
- 【SPSS统计分析】SPSS聚类分析:一个案例演示聚类分析全过程(附SPSS 19.0中文版下载)
- 超简单的用PS(PhotoShop)转换png为ico,简单的制作favicon.ico,使用画图工具转换PNG为ICO图标,不用下什么插件软件什么玩意儿的
- 我去补了个牙,然后发现,未知的恐惧让人很绝望
- U盘病毒泛滥 专家解析病毒历史及防范方法
- 服务器自带的防篡改,防篡改系统
- 现代女生令我们如此失望
- java hypot_static double hypot(double x, double y)
- 欧洲篮球冠军联赛网站
- uni-app三级联动笔记
- SQL快速入门、查询(SqlServer)[郝斌SqlServer完整版]
- 【详细!!】计算机类书籍整理
- 算法与数据结构07:前缀树,计数排序与桶排序
- Jvm-Sandbox-Repeater的部署
- 股票波动率 python_如何统计投资品种波动率(python)?