LoadRunner的总体架构图,包括各个组件VUGen, Controller和Analysis之间的关系.

LoadRunner由四大组件组成:VuGen、控制器、负载发生器和分析器。

1、VuGen发生器:捕捉用户的业务流,并最终将其录制成一个脚本:(1)选择相应的一种协议;(2)在客户端模拟用户使用过程中的业务流程,并录制成一个脚本;(3)编辑脚本和设置Run-Time Settings项;(4)编译脚本生成一个没有错误的可运行的脚本。

2、控制器(Controller):(1)设计场景,包括手动场景设计和目标场景设计两种方式;(2)场景监控,可以实时监控脚本的运行的情况。可以通过添加计数器来监控Windows资源、应用服务器和数据库使用情况。

场景设计的目的是设计出一个最接近用户实际使用的场景,场景设计越接近用户使用的实际情况,测试出来的数据就越接近真实值。场景设计也设计很多技巧,如IP欺骗、负载均衡等一些手段。

3、负载发生器(Load Generators):模拟用户对服务器提交请求。
通常,在性能测试过程中会将控制器和负载发生器分开;即控制器使用一台独立的机器(原因是进行脚本编辑时会产生大量的参数化文件,而这些参数化文件会占用系统资源,再者就是运行时会产生大量的日志文件,最主要是因为在模拟成百上千的虚拟用户进行性能测试时,每个虚拟用户都是需要消耗系统资源的,如果虚拟的并发用户过多,会导致测试机出现瓶颈)

当使用多台负载发生器时,一定要保证负载均衡(指在进行性能测试的过程中,保证每台负载发生器均匀地对服务器进行施压)。

4、分析器(Analysis):主要用于对测试结果进行分析。它可以提供很多报告的形式,包括XML,word等

LOADRUNNER工作过程

1、很多人都认为loadrunner工作的第一步应该是从VuGen开始,但其实loadrunner在性能测试过程中首先是从控制器开始的,控制器为整个系统的核心,控制着其运行与停止。控制器包括两部分场景设计和场景监控,通过设计控制器中的场景设计性能测试脚本运行的策略,同时在脚本运行过程中监控性能测试的相关指标。

2、确定执行策略后,控制器将控制负载机去产生压力,模拟成百上千的虚拟用户去运行脚本,那么负载机如何知道需要执行哪些脚本以及执行脚本的策略呢?在控制器初始化时,控制器会向负载机发送一个二进制文件,在该文件中记录着如何运行脚本的信息。

3、控制器收集测试过程中的相关数据,在控制器执行脚本场景时,控制器会收集测试过程中相关的一些数据,并将这些数据保存在ACCESS数据库中。

4、结果分析。当场景执行测试结束后,会生成一些分析结果的数据,这时测试工程师需要对这些数据进行分析,如果结果能满足需求,那么说明系统性能满足需求;反之,就有可能需要进行多次实验,来找到性能瓶颈并向开发工程师提出解决的建议和性能调优的建议。

LR工作原理的更多相关文章

  1. 菜鸟学Struts2——Struts工作原理

    在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...

  2. 【夯实Nginx基础】Nginx工作原理和优化、漏洞

    本文地址 原文地址 本文提纲: 1.  Nginx的模块与工作原理    2.  Nginx的进程模型    3 . NginxFastCGI运行原理        3.1 什么是 FastCGI   ...

  3. HashMap的工作原理

    HashMap的工作原理   HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间 ...

  4. 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)

    RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...

  5. ThreadLocal 工作原理、部分源码分析

    1.大概去哪里看 ThreadLocal 其根本实现方法,是在Thread里面,有一个ThreadLocal.ThreadLocalMap属性 ThreadLocal.ThreadLocalMap t ...

  6. Servlet的生命周期及工作原理

    Servlet生命周期分为三个阶段: 1,初始化阶段  调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...

  7. 代码管理工具 --- git的学习笔记二《git的工作原理》

    通过几个问题来学习代码管理工具之git 一.git是什么?为什么要用它?使用它的好处?它与svn的区别,在Mac上,比较好用的git图形界面客户端有 git 是分布式的代码管理工具,使用它是因为,它便 ...

  8. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  9. 浏览器内部工作原理--作者:Tali Garsiel

    本篇内容为转载,主要用于个人学习使用,作者:Tali Garsiel 一.介绍 浏览器可以被认为是使用最广泛的软件,本文将介绍浏览器的工作原理,我们将看到,从你在地址栏输入google.com到你看到 ...

随机推荐

  1. [OS X实用技巧]机器人应用:一键将图片转换为PNG/JPEG/TIFF

    转自:http://www.maczhi.com/archives/2842.html 按教程老出错....试验了后使用: - 取得指定Finder对象,其它不变,但运行后不会出错. OS X实用技巧 ...

  2. AC日记——接苹果 洛谷 P2690

    题目背景 USACO 题目描述 很少有人知道奶牛爱吃苹果.农夫约翰的农场上有两棵苹果树(编号为1和2), 每一棵树上都长满了苹果.奶牛贝茜无法摘下树上的苹果,所以她只能等待苹果 从树上落下.但是,由于 ...

  3. LeetCode:926. 将字符串翻转到单调递增

    暴力法超时:思想:动态规划 public int minFlipsMonoIncrb(String S) { int result = S.length(); for (int i = 0; i &l ...

  4. android 获得系统时间

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  5. 深入理解javascript之设计模式

    设计模式 设计模式是命名.抽象和识别对可重用的面向对象设计实用的的通用设计结构. 设计模式确定类和他们的实体.他们的角色和协作.还有他们的责任分配. 每个设计模式都聚焦于一个面向对象的设计难题或问题. ...

  6. 通过Python实现自动填写调查问卷

    0X00 前言 快开学了,看到空间里面各种求填写调查问卷的,我才想起来貌似我也还没做.对于这种无意义的问卷,我是不怎么感冒的,所以我打算使用”特技”来完成,也就是python,顺便重新复习一下pyth ...

  7. OnlineJudge测试数据生成模板

    int类型数据生成一(正数最多4位): #include <bits/stdc++.h> using namespace std; int main() { freopen("t ...

  8. 一个能自己主动搜索源文件并自己主动推导的Makefile

    今天看了一天的makefile的写法.东拼西凑.好不easy写出了一个makefile.颇有成就感,记录下来,以备温习之用. 如果有两个头文件文件夹 header1,header2;两个cpp文件文件 ...

  9. 源代码方式向openssl中加入新算法完整具体步骤(演示样例:摘要算法SM3)【非engine方式】

    openssl简单介绍 openssl是一个功能丰富且自包括的开源安全工具箱.它提供的主要功能有:SSL协议实现(包括SSLv2.SSLv3和TLSv1).大量软算法(对称/非对称/摘要).大数运算. ...

  10. [UnityShader3]溶解与重现效果

    參考链接:http://www.cnblogs.com/Esfog/p/DissolveShader.html 效果图: 从颜色变化来说,有三种,一种是纹理颜色.一种是纹理与黑边的混合颜色,一种是透明 ...