按照OSI模型,通信协议被分为七层,从物理层到应用层,每一层都有其特定的功能和标准。然而,更为广泛使用的是TCP/IP协议分层模型,它将通信协议分为四层:网络接口层、网络层、传输层和应用层。LoadRunner的协议选择主要基于TCP/IP模型进行讨论。
在LoadRunner的VuGen中,协议分类繁多,包括但不限于HTTP/HTML、C模板、Visual BASIC模板、Java模板等。需要注意的是,VuGen中的某些“协议”实际上是开发语言模板,并非严格意义上的通信协议。
选择合适的协议是进行有效性能测试的关键。对于常见的B/S结构应用,HTTP/HTML协议是最常用的选择,因为它能够模拟用户通过浏览器访问Web应用的场景。而对于C/S结构的应用,协议选择则更为复杂。例如,如果后端数据库是Sybase,可以选择SybaseCTLib协议;若是SQL Server,则选择MSSQLServer协议。
对于纯JAVA编写的C/S应用,JAVA协议是合适的选择,但这类协议通常无法通过录制生成脚本,需要手工编写,增加了工作量和难度。类似的情况也出现在C、VB Script等协议中。
对于没有数据库的Windows应用,Windows Sockets协议是一个底层选择,适用于基于Socket开发的应用程序。尽管几乎所有应用都可以通过Socket录制,但Socket脚本的可读性较差,这也是为什么存在多种协议的原因之一。
在处理邮件应用时,协议选择取决于邮件的收发方式。通过Web页面收发邮件时,选择HTTP协议;而通过邮件客户端如OutLook、FoxMail时,发邮件可能需要SMTP协议,收邮件则可能需要POP3协议。
此外,对于Telnet和SSH等远程登录应用,RTE协议是一个常见选择,尽管SSH的具体适用性仍需进一步验证。
总之,LoadRunner的协议选择需要根据应用的具体架构和通信方式来决定,合理的协议选择能够大大提高性能测试的准确性和效率。
LoadRunner对不同协议的选择
以前使用Loadrunner只选择过web(Http/Html),但其实协议多种多样。在B/S结构的网站多种业务的特点需要选择不同的协议,耿电在给我们就介绍了用过的不同的协议。协议如何选择呢,寻找了相关资料。
LoadRunner首先是一个测试工具,其次是一个性能测试工具,然后是该工具是一个基于协议,也就是说LoadRunner测试的对象都需要使用通信协议,对于那些不使用通信协议仅仅进行本地处理的软件例如Microsoft Word,LoadRunner就不适用。说到通信协议我们来熟悉一下协议的分层,按照OSI的分层模型,分层结构如下:
按照TCP/IP协议的分层,分层结构如下:
第一个分层是由OSI制定但不实用,后一个是目前广泛使用且被业界认做既定标准的协议分层,下文探讨的LoadRunner协议选择即按TCP/IP协议的分层模型讨论。
接着来说说LoadRunnerVuGen中的协议分类,VuGen(LR8.1)中的协议分类如下表所示:
LoadRunner VuGen中的协议与文章开头所说的通信协议还是有一定的区别的,例如像LoadRunner VuGen中的C 模板、Visual Basic 模板、Java 模板、Javascript 和 VBScript 类型的脚本均为开发语言,非通信协议。
一般来说协议选择有如下原则:
B/S结构,选择WEB(Http/Html)协议;
C/S结构,可以根据后端数据库的类型来选择,如SybaseCTLib协议用于测试后台的数据库为Sybase的应用;MSSQLServer协议用与测试后台数据库为SQL Server的应用;
对于有些使用纯JAVA编写的C/S结构的东东,采用JAVA,而且不能录制只能手工编写代码(工作量和难度还是有的)。同样不能录制的还包括C、VB Script、VB、VBNet User协议。
对于一些没有数据库的Windows应用,可选用Windows Sockets底层协议;使用了数据库但使用的是ODBC连接的数据则选择ODBC协议;对于Windows Sockets协议来说,最适合的那些基于Socket开发的应用程序;但是由于网络通讯的底层都是基于Socket的,因此几乎所有的应用程序都能够通过Socket来录制,哪可能有人会问,哪既然Socket都能录制下来,还要那么多协议做什么,价格还贼贵,其实最主要的原因就是Socket录制的代码可读性较差,如果Socket的脚本可读性较高的话,实话就没有其他协议出现的必要性了。
对于邮件来说,首先要看你收邮件的途径,如果你通过WEB页面收发邮件,毫无疑问,你选择协议时就需要选择HTTP协议,如果你通过邮件客户端,像OutLook、FoxMail之类的,则需要根据操作不同选择不同的协议了,例如发邮件你可能要选择SMTP、收邮件你可能需要选择POP3。
Telnet、SSH选择RTE协议(SSH不知道是不是,有待考证)。