选择LoadRunner Protocol的两大定律

确定性能测试脚本录制时使用的协议类型经常是一个容易引起误会的问题。很多刚刚接触到性能测试的同行常常会想当然地根据开发语言等来决定协议的选取,导致录制后的脚本不能回放成功。

选择LoadRunner Protocol的两大定律

在选择LoadRunner协议之前,首先要弄懂被测软件系统的架构,知道系统由哪些节点组成,每个节点之间的通信方式。然后根据一下原则来选择LoadRunner协议。

1.以客户端和其直接连接的Server通信方式为准。

因为LoadRunner的Vuser模拟的是客户端,所以Vuser和真实的客户端一样,和离它最近的Server打交道,而和整个系统的功
能无关。比如一个Web Mail系统,虽然它是实现了Mail功能,但是作为客户端的IE直接连接的是Web Server而不是Mail
Server,在这种情况下我们只考虑IE和Web Server的通信方式,也就是HTTP协议。

2.匹配原则由高协议到低协议。

确定了被测系统的网络协议后,选择LoadRunner Vuser应该以实际网络协议匹配为佳,如不能匹配,LoadRunner Vuser则降一个协议层再次匹配。
     比如,如果碰到一个网络应用,其采用的应用协议比较特殊,在LoadRunner里没有找到合适的协议,那么就降低一个层次,用Winsock
来录制,那是肯定没有问题的。因为几乎所有的网络传输中都是基于TCP协议或者UDP协议的,而Socket协议正是这一级上的协议。但是由于
Socket协议级别太低,录下来的东西很难理解,都是Socket、Port、Data之类的东西。所以,尽量用高层协议来录制,这样就能看懂了。

选择LoadRunner Protocol的两大定律的更多相关文章

  1. Java轻量级业务层框架Spring两大核心IOC和AOP原理

    IoC(Inversion of Control): IOC的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务.容器负责将这些 ...

  2. dll的加载方式主要分为两大类,显式和隐式链接

    之前简单写过如何创建lib和dll文件及简单的使用(http://blog.csdn.net/betabin/article/details/7239200).现在先再深入点写写dll的加载方式. d ...

  3. 告别set和get,两大利器轻松搞定model转换

    场景一:一般我们遇到需要新建model,常规做法就是创建一个类,老老实实的定义好model中的所有属性,一般来说属性对应的set方法和get方法都是少不了的,有时候还需要toString甚至equal ...

  4. hadoop两大核心之一:MapReduce总结

    MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,MapReduce程序 本质上是并行运行的,因此可以解决海量数据的计算问题. MapReduce任务过程被分为两个处理阶段 ...

  5. 首先java中集合类主要有两大分支

    本文仅分析部分原理和集合类的特点,不分析源码,旨在对java的集合类有一个整体的认识,理解各个不同类的关联和区别,让大家在不同的环境下学会选择不同的类来处理. Java中的集合类包含的内容很多而且很重 ...

  6. 通过微信Android和iOS版,看两大系统的差异

    由于设计师或者产品经理使用的移动设备大部分是iPhone,所以在做设计时,容易忽略Android和iOS的差异,按照自己的使用习惯进行设计,导致大部分设计师或产品经理做出的设计都是基于iOS规范或习惯 ...

  7. [转载]为何 Emacs 和 Vim 被称为两大神器

    Emacs 是神的编辑器,而 Vim 是编辑器之神.二者为何会有如此美誉,且听本文向你一一道来. 目 录 0. 序章:神器的传说 1. 无敌的可扩展性 1.1 可扩展性给了软件强大的生命 1.2 Em ...

  8. MySQL两大存储引擎:MyISAM和InnoDB

    Mysql有两大常用的存储引擎MyISAM,InnoDB,默认的形式是前者. 两者基本的差别是对事务处理.外键和行级锁的主持上,InnoDB支持事务处理.外键等高级特性,而MyISAM不支持.MyIS ...

  9. 【转】深入了解CPU两大架构ARM与X86

    来自:https://blog.csdn.net/u014641018/article/details/53484565 重温下CPU是什么 中央处理单元(CPU)主要由运算器.控制器.寄存器三部分组 ...

随机推荐

  1. [Swift A]-问号&感叹号

    1.必须赋值的变量,或普通变量 var month:Int println("month:\(month)") 上面这2句代码会提示报错,因为没有赋值 2.再看看如下写法 var ...

  2. 公司交换机arp 绑定操作

    1.首先登入:192.168.1.1 2.sys 3.dis arp | inc 192.168.1.49(查看该ip绑定情况) 4.undo arp 192.168.1.49(不绑定命令)

  3. Solr 搜索功能使用

          http://wiki.apache.org/solr/SolrQuerySyntax  http://www.solrcn.com/index.php?s=查询 

  4. laravel-v5.1数据库连接文件是.env文件

  5. 为什么要设置Java环境变量(详解)[转]

    从大二开始接触Java,之后是断断续续的学习.大三真正开始Java之旅,估计大部分初学者在学Java时被Java的环境变量搞的晕头转向,虽然找到了正确设置环境变量的方式,但其中的原因一知半解,设置压根 ...

  6. Python的ipython的安装

    IPython是Python 的原生交互式 shell 的增强版,可以完成许多不同寻常的任务,比如帮助实现并行化计算:主要使用它提供的交互性帮助,比如代码着色.改进了的命令行回调.制表符完成.宏功能以 ...

  7. unity, 不要change Default sharedMaterial

    假设在场景中加一个sprite,其材质使用默认的Sprites-Default. 若调用: Color color=sprite.GetComponent<SpriteRenderer>( ...

  8. Step by Step Learn Python(1)

    print "Hello World!" action = raw_input("please select your action{1, 2, 3, 4, 5, 6, ...

  9. Ubuntu 14.04主机上部署k8s集群

    部署结构 3台虚拟机,其中1台作为master,2台作为minion,都安装了最新版本的docker engine(目前是1.11.2) k8s版本是1.3.0 主要问题 部署步骤基本按照官方文档:h ...

  10. eclipse下修改默认编码

    window-preferences-右侧选项卡-General-Workspace-Text file encoding