Loadrunner如何选择协议(转)

来源:互联网 发布:日本爱知世博会ppt 编辑:程序博客网 时间:2024/04/30 08:44
Loadruner协议选择原理:
  网络协议是计算机之间沟通交流的“语言”,计算机都是通过“语言”来说话的,LoadRunner要知道计算机之间说什么,它只需派出一个翻译间谍(Vuser)监听计算机的对话就可以了,听完了,还要记下来生成脚本,这样做就OK了。但是很遗憾,这个世界上不是只有一门语言,不仅有汉语,还有英语、法语等几十种语言,计算机也面临这种问题,“语言”(网络协议)有上百种,不同的计算机之间用不同的语言说话,甚至方言也都有(增强协议),在这种情况下,我们可怜的LoadRunner只好增加人手,培养不同语言的翻译人才(Loadrunner Protocol),如果计算机是用A语言说话,LoadRunner就要派出A语言翻译,如果计算机用B语言说话,LoadRunner就要派出B语言翻译,这样问题就能得到解决了。但同时也要注意的是,一定不要派错了翻译(选错了Protocol类型),如果计算机用A语言,而LoadRunner派出B语言翻译,毫无悬念,LoadRunner要为自己的错误负责,可怜的B翻译将会什么也听不懂,交了白卷

Loadrunner协议选择定律:
选择第一定律:以客户端和其直接连接的Server通信方式为准。
   因为LoadRunner的Vuser模拟的是客户端,所以Vuser和真实的客户端一样,和离它最近的Server打交道,而和整个系统的功能无关。比如一个Web Mail系统,虽然它是实现了Mail的功能,但作为Client端的IE直接连接的是Web Server而不是Mail Server,在这种情况下我们只考虑IE和Web Server的通信方式,也就是HTTP协议。
选择第二定律:匹配原则由高协议到低协议。
  定了被测系统的网络协议后,选择LoadRunner Vuser应该以实际网络协议匹配为佳,如不能匹配,LoadRunner Vuser则降一个协议层次再次匹配。
比如,我们如果碰到一个网络应用,其采用的应用协议比较独特,在LoadRunner里没有找到合适的协议,那么我们就降低一个层次,用Winsock来录制,那是肯定没有问题的。因为几乎所有的网络传输中都是基于TCP协议或UDP协议的,而Socket协议正是这一级上的协议。但是由于Socket协议级别太低,你录下来的东西是很难理解的,都是Socket、Port、Data之类的东西。所以,尽量用高层协议来录制,我们就能看懂了。

协议参考选择:

LR的录制工作原理,LR跟WR不一样,它不关心你的对象识别什么,不关心你的什么窗口之类的,LR有一个Agent的进程,来专门监控客户端与服务器之间的通信,然后用自己的函数进行录制,所以说,LR录制的时候关心的是通信,是客户端与服务器之间的数据包。说到这里,大家就比较清楚了,为什么有的时候不能录制呢?因为,协议不认识阿,导致LR截获的数据包不能解析,所以录制下来是空的。

到这里看来,我们怎么样选择协议呢?当然原则就是说,你的数据包的通信协议能被LR 识别。

过去流行的一种看法是,只要B/S结构的都是选择http协议,如果不是B/S 结构的那肯定是socket, 其实这种说法比较片面,我觉得要真正理解这个问题,必须搞杏出你所测系统的数据流采用什么协议包装的,这个我个人觉得,最好是能去向开发人员多理解这个问题,多学习。

协议参考选择:

应用类型   协议选择

1,web 网站  Http/HTML

2, FTP 服务器 FTP

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

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

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

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

5, ERP系统 SAP Peoplesoft

6, 分布式组件  COM/DACOM EJB

7, 无线应用 WAPPALM

总之,只有充分理解被被测系统的应用类型和技术架构,才能做出正确的选择。