客户端的测试工具LoadRunner怎么选择协议?

在学习编程的过程中,我觉得不止要获得课本的知识,更多的是解决问题的方法,面对新问题该怎么解决,这样我们才能走在最前方,我是达内的学员,感谢你对本博客的支持;
  LoadRunner属于应用在客户端的测试工具,在客户端模拟大量并发用户去访问服务器,从而达到给服务器施加压力的目的。所以说LoadRunner模拟的就是客户端,其脚本代表的是客户端用户所进行的业务操作,即只要脚本能表示用户的业务操作就可以。具体到脚本应该选择什么协议,就是选择脚本中选择哪些系统头文件的问题,下面是各种协议和相关头文件的对应关系。


  具体到选择协议,以下提供两种策略:

  ※选择click and scrīpt,相对比较简单的协议,类似于WinRunner和QTP的GUI级别的脚本,直接记录鼠标和键盘的动作,不需要关注底层的通讯协议,可以避免很多问题(如关联等),容易理解,不过LoadRunner 9.0支持的click and scrīpt不多,只有以下三种:

  Web (Click and scrīpt)

  SAP (Click and scrīpt)

  Ajax (Click and scrīpt)

  ※另外一种就是选择协议的依据就是client和server之间的通讯协议了。

  记住!!!依据只是通讯协议,而不是别的。

  B/S结构的就不一定都是选择WEB(HTTP/HTML) 协议

  C/S结构的就不一定都是选择WinSocket协议

  目前很多的Win32应用客户端其实也是HTTP通讯。要注意LoadRunner还有下面的选项


  所以说选择什么协议和什么c/s、b/s结构关系不大,唯一的依据就是客户端和服务器之间的通讯。明白这一点后,什么“单协议”、“双协议多协议”统统不再是问题。

  先搞清楚什么是协议,为什么要选择协议。这就需要各位对通信机理有一些的了解。

  首先了解什么是协议?

  协议无非就是一个约定,关于数据包发送的格式的约定,就是说如果大家都这样发送,那么通信就能够成功,如果大家都各按各的来,那么就没办法进行通信了。接下来就是LR录制时的工作原理了,LR的录制和WR不一样,它不关心你的对象识别什么的,不关心你的什么窗口之类的,LR有一个Agent进程,来专门监控客户端和服务器之间的通信,然后用自己的函数进行录制。所以说,LR录制的时候关心的是通信,是客户端和服务器之间的数据包。lr录制机理,在录制时,lr会对从本机发出去的数据进行截包,并拆包。因为协议的不同就是体现在数据包的结构不同,lr应该通过对包结构的分析,判断是不是它支持的协议,对包数据的分析,来获取用户发送的东西。这样就很容易明白为什么有的时候不能录制呢?因为协议不正确,导致LR截获的数据包不能解析,所以录制下来是空的。比如你用ftp的协议去录制一个访问网页的IE操作,那肯定是不能获取的。因为lr没有在网络截获到ftp协议格式的包,都是http协议格式的包,它不认,当然就是一个录制为空的结果了。

  ※明白了协议的原理,就知道该如何选择协议了。要知道lr是不是支持mysql协议。要寻找的答案的思路是这样的:

  1。首先弄清mysql协议和其他数据库协议的关系,看能不能用其它数据库协议录制。但其实oracle的cs协议是oracle独有自己开发的协议,sqlserver也是一样,而mysql又与这几大产品又不是隶属关系,其脚本录制的可能性很小。

  2。mysql协议的底层是基于什么协议的,如果直接构建在tcp协议上,lr又不支持mysql协议,那只能考虑用低一点的协议录录看,即socket。如果mysql协议是构建在odbc协议上的,那么就可能用lr的odbc api来写。

  ※那如何去选择协议呢?

  首先数据包的通信协议能被LR识别。

  过去流行的一种说法是,只要B/s结构的都是选择http协议,如果不是b/s那么肯定是socket,其实这种说法是比较肤浅或者比较片面的。要真正理解这个问题,必须搞清楚你所测系统的数据流采用的什么协议包装的。这个最好是能去向开发人员多了解。多了解一些网络方面的专业知识,最好学习一些网络分析工具譬如说Sniffer等,这对测试会很有帮助。

  应用类型 协议选择参考:

  1. Web网站 HTTP/HTML

  2. FTP服务器 FTP

  3. 邮件服务器 IMAP,POP3,SMTP

  4. C/S (第一种)客户端以ADO,OLEDB方法连接后台数据库 MS SQL Server,Oracle,Sybase,DB2,Infrmix

  C/S (第二种)客户端以ODBC方法连接后台数据库 ODBC

  C/S (第三种)没有后台数据库 Socket

  5. ERP系统 SAP Peoplesoft

  6.分布式组件 COM/DACOM EJB

  7.无线应用 WAP PALM总之,只有充分了解被测系统的应用类型和技术架构,才能做出正确的选择。 理论上来说我们在对一个系统做性能测试以前,要先和开发人员了解一下他们在开发过程中都用了些什么技术,数据流是用什么协议封装的,还要了解我们要测试的 系统的网络结构,服务器的配置等问题;还有就是要知道系统客户端和第一服务器间的协议,这中间就涉及到一个中间件的问题。另外我们要知道协议的选择直接关 系到LR会捕获到什么样的数据包。这些是进行性能测试的基础。
知识就是力量,别人学用知识来赚钱的成本低,学习到编程是铸造梦想的方法,如果你喜欢编程,这里,有我们共同语言,共同的故事,共同的梦想!

posted @ 2016-02-19 11:08  老夫子_22  阅读(1785)  评论(0)    收藏  举报