logo
 
 
|
|
|
|
|
|
|
|
 
 
您的位置:首页 - 专业知识
Loadrunner的简介和选择协议
[2010-08-02]
最近在网上看到很多的人在讨论Loadrunner怎样选择协议的问题,下面的内容就是根据我做的一些性能测试的经验,简单的介绍一下Loadrunner怎样选择协议的问题。



作者:刘飞

        最近在网上看到很多的人在讨论Loadrunner怎样选择协议的问题,下面的内容就是根据我做的一些性能测试的经验,简单的介绍一下Loadrunner怎样选择协议的问题。在介绍选择协议之前,简单的介绍一下Loadrunner。
        LoadRunner是一种预测系统行为和性能的工业级标准性能测试负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

        目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。这些都不可避免地导致公司收益的损失。Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。LoadRunner 是一种适用于各种体系架构的负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。

        经常有新手问:为什么我用LR录完之后VuGen里产生不了脚本?这就是协议选择的问题了,LR支持的协议和应用非常广泛,很少有人能用完这么多协议,我们就常见的大多数人用的加以讨论:对于常见的,b/s系统,选择Web(Http/Html),测一个C/S系统,根据C/S结构所用到的后台数据库来选择不同的协议,如果后台数据库是sybase,则采用sybaseCTlib协议,如果是sql server,则使用MS sql server的协议,至于oracle 数据库系统,当然就使用oracle 2-tier协议。对于没有数据库的c/s(ftp,smtp)这些可以选择windwos wockets协议。至于其他的ERP,EJB(需要ejbdetector.jar),选择相应的协议即可。

        以上这些是大家在网上经常能够见到的回答,我个人认为:其实选择协议最根本的依据是你的测试机与第一个受压的机器所使用的协议时什么就选择什么,这是不变的真理。比如:要测试163邮箱。就只要选择HTTP协议,你的测试机不能够直接与163的数据库服务器直接进行通信,而是与WEB服务器进行直接通信。网上也有人说选择套接字协议,什么都能够搞定。我认为尽量不要选择套接字协议,因为套接字是传输层的协议,属于低协议脚本,最难维护和编写。大家都知道,脚本讲到底层,就是发-收-发-收的过程,底层就是二进制代码。试问大家二进制代码大家能够看的懂吗?所以尽量选择高协议进行录制和编写脚本,这样维护起来效果比较好。实在没有办法就可以选择套接字,因为无论什么应用层协议最终还是要通过传输层进行通信,所以说套接字协议是万能协议是正确的。

        下面我就简单的解释一下Loadrunner选择协议的基本原理:

        安装好Loadrunner,就看到你任务栏下面有一个代理进程的图标,通过代理进程,监视各种协议的client与server端的通讯,用LR的一套C语言函数(现在的LR,还支持Vbscript和Javascript)来录制脚本,所以只要Loadrunner支持的协议,就不会存在捕捉不到的,这是它与Loadtest,WR,Robot(Gui)录制脚本的很大一个区别。WR必须对识别对象,才能录制到。然后它调用这些脚本向服务器端发出请求,接受服务器的返回。至于服务器内部如何处理,它不关心。

        首先:安装Loadrunner的测试机选择相对应的协议,脚本先发送到代理进程,代理进程根据你选择的协议,自动转化为相对应的协议格式,即原语。再发送到你要测试的服务器端。如果协议是正确的格式,那么服务器端就能够理解你的请求,服务器根据代理进程发送过来的请求,作出相应的回答,发送到代理进程端。代理进程再根据你选择的协议格式转化成相应的脚本格式;如果你选择的协议不是服务器端所使用的协议,那么很显然就不能够进行应答。

        其次:我个人认为,编写测试脚本所遵循几个原则:
1.    脚本是越小越好,就像写代码一样的,不要太长,尽量做到一个功能一个脚本。如果有些功能是连续的,必须先做上一个,才能工作下一个,那就只好放在一起了。
2.    但是要结合用户实际使用情况,一般在一个系统中是多个用户使用多个功能,某些功能使用的频率更大一些,我们在录制脚本之前就要设计好,某个脚本会跑几个用户,一共需要多少个脚本,能满足性能测试的需求
3.    有些人喜欢在Loadrunner中测试几乎所有的功能,其实这样不合适,我们把最常用的、使用频率最高的、最多人用的拿出来测试。
4.    尽量选择高协议脚本,这样维护脚本的成本较低,也好看懂,而底协议脚本是很难维护的,编写起来也比较麻烦。
5.    对于WEB的程序,对于你所关注的内容没什么影响的操作,你可以不录制,可以暂停,这需要试的,比如一些查询,通常,选择条件的页面都可以不录制,但对于一些页面有可能要传递参数,就需要录制了,这就要自己试了。
上一篇:web开发Cookie应用之显示曾经浏览过的内容(连载1)
下一篇:使用JDBC连接数据库的步骤
   
学习软件测试的感想 学习软件测试的感想
微软发布Windows 7 SP1测试版等软件产品 微软发布Windows 7 SP1测试版等软件产品
软件测试点亮了我人生的烛光 软件测试点亮了我人生的烛光
Mozilla发布火狐4第一个测试版 支持HTML5 Mozilla发布火狐4第一个测试版 支持HTML5
 

在线报名

  • 姓       名:*
  • 高考成绩:*
  • 电       话:*
  • 地       址:*
 
课程咨询
 

 
中博教育客服在线
 
©南京北大青鸟 隐私政策
学费咨询
学历咨询
专业咨询
订座试听
就业咨询
课程咨询
测试认证
软件认证