首先这个ptotocol是指应用层的协议,是你的客户端使用什么协议访问你的服务器server。
在选择protocol遇到困难时,说明我们在学习LR的过程中,至少存在两个方面的问题:
1、对LR的工作原理认识不清。
LoadRunner属于应用在客户端的测试工具,在客户端模拟大量并发用户去访问服务器,从而达到给服务器施加压力的目的。所以说LoadRunner模拟的就是客户端,其脚本代表的是客户端用户所进行的业务操作,即只要脚本能表示用户的业务操作就可以。
2、网络通信的基础知识不牢。
不了解这个协议的选择原则,不了解被测试系统的总体架构。
说到通信协议我们来熟悉一下协议的分层,按照OSI的分层模型,分层结构如下:
按照TCP/IP协议的分层,分层结构如下:
第一个分层是由OSI制定但不实用,后一个是目前广泛运用且被业界认做既定标准的协议分层,下文探讨的LoadRunner协议选择即按TCP/IP协议的分层模型讨论。
接着来说说LoadRunner-VuGen中的协议分类,VuGen(LR8.1)中的协议分类如下表所示:
那现在来说说如何解决问题,首先,你要通过一定的渠道来了解测试对象的应用层通信协议:
1、通过询问开发人员获知所运用的协议,通常这是最基本也是最直接的要领 ;因为没有人比开发人员更清楚他们所开发的运用 程序运用的什么通信协议了;
2、通过概要或细致设计手册获知所运用的协议,在没有开发人员支持的情况,通过概要设计或细致设计获知所运用的协议不失为第二简便要领 ;
3、通过协议分析工具捕包分析,然后确定被测对象所运用的协议。在运用协议分析工具分析协议流程当中一定要摒除底层协议,不要被底层协议所迷惑;
4、通过以往测试体会确定被测对象所运用的协议,当然通过这种要领确定的协议有一定的不准确性;
其实也可以尝试用多种协议来分别录制脚本,看哪些是成功的,哪些录制的脚本内容为空。录制成功的,也可以比较一下脚本的差别。
最后来说一说选择脚本的一些基本原则【转载】:
B/S结构,选择WEB(Http/Html)协议;
C/S结构,可以根据后端数据库的类型来选择,如SybaseCTLib协议用于测试后台的数据库为Sybase的运用 ;MSSQLServer协议用与测试后台数据库为SQL Server的运用 ;对于一些没有数据库的Windows运用 ,可选用Windows Sockets底层协议;运用了数据库但运用的是ODBC连接的数据则选择ODBC协议;
对于有些运用纯JAVA编写的C/S结构的东东,采用JAVA,而且不能录制只能手工编写代码(工作量和难度还是有的)。同样不能录制的还包括C、VB Script、VB、VBNet User协议。
对于Windows Sockets协议来说,最适合的那些基于Socket开发的运用 程序;但是由于网络通讯的底层都是基于Socket的,因此几乎所有的运用 程序都能够通过Socket来录制,哪可能有人会问,哪既然Socket都能录制下来,还要那么多协议做什么,价格还贼贵,其实最主要的原由就是Socket录制的代码可读性较差,如果Socket的脚本可读性较高的话,实话就没有其他协议出现的必要性了。
对于邮件来说,首先要看你收邮件的途径,如果你通过WEB页面收发邮件,毫无疑问,你选择协议时就须要选择HTTP协议,如果你通过邮件客户端,像OutLook、FoxMail之类的,则须要根据操作不同选择不同的协议了,例如发邮件你可能要选择SMTP、收邮件你可能须要选择POP3。