资源描述:
《LoadRunner与Winsock协议》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、LoadRunner与Winsock协议(一)在开始讨论winsocket解决方案之前,我们先讨论一下各种协议是如何工作.从前面的简介可以了解到很多的高级协议,例如FTP,HTTP协议等.以及所有基于window的应用(例如IE,WS-FTP)底层都是在Winsocket层上通信,因此任何高级协议的底层都是用Winsocket通信。什么时候在LR中选择Winsocket协议呢?你要先了解LR是怎么样工作的:LR捕捉API请求然后再把它们回放。所以当你在创建LRWEB脚本的时候,VUGEN捕捉从IE出去的所有的HTTP请求。除此之外lr还支持其他很多协议,例如Orac
2、le,ODBC等。在选择不同协议录制脚本的时候,LR是依靠hooks捕捉正确的API请求。所以既然大部分网络协议都是架构在winsocket协议之上的,那对于lr不支持的协议,我们都可以在winsocket层上录制脚本。所以当找不到合适协议的时候,可以选择winsocket来录制。录制WinSock协议脚本!Lr录制新的虚拟用户脚本,选择winsock协议在web虚拟用户脚本中录制的是URL信息,所以VUGEN启动流览器并运行就可以了,但选择Winsocket录制的时候,可能会是各种形式的应用,并不简简单单就是浏览器,所以在开始的时候我们不需要指定应用的地址。下面的
3、例子我们选择winsock来录制web应用,正如上面说的我们开始要指定ie的地址。因为本来lr是支持http协议的,所以这个例子并无具体的意义,只是为了使例子简单。LoadRunner与Winsock协议(二)winsock脚本典型代码?lrs_create_socket(”socket0″,“UDP”,“LocalHost=0″,“RemoteHost=doors:2084″,LrsLastArg);lrs_create_socket(”socket1″,“TCP”,“LocalHost=0″,“RemoteHost=www2.yahoo.com:80″,LrsL
4、astArg);lrs_send(”socket0″,“buf0″,LrsLastArg);lrs_receive(”socket0″,“buf1″,LrsLastArg);lrs_send(”socket1″,“buf2″,LrsLastArg);lrs_send(”socket0″,“buf3″,LrsLastArg);lrs_receive(”socket0″,“buf4″,LrsLastArg);这是访问雅虎的一个应用,正如我们看到的,winsock先打开一个winsocket连接,然后收发包。我们发现录制的脚本中比web脚本(三个文件)多一个文件。第四个文
5、件是data.ws,它里面记载了在action里面收发所有包的内容下面是一个data.ws的例子。sendbuf0“!”recvbuf11“!”sendbuf2“GET/HTTP/1.1\r”“Accept:*/*\r”“Accept-Language:en-us\r”“Accept-Encoding:gzip,deflate\r”“User-Agent:Mozilla/4.0(compatible;MSIE5.01;WindowsNT5.0)\r”“Host:www.yahoo.com\r”“Connection:K
6、eep-Alive\r”“Cookie:B=5oj83bst12l6m&b=2;Y=v=1&n=8lln5lmi3f8g1&l=6ef8c0d34b0/o&p=m2a2s”“qa4110004&r=3f&lg=us&intl=us;T=z=4TVE6A4ZqE6A9dIIpt30.NQNTYGNDE3NTYwM081&”“a=AAE&sk=DAAEwinHlDtEm/&d=c2wBTWpFQk16WXdNakUzTkRneQFhAUFBRQF6egE0VFZFNkFn”“V0E-;I=i1=010g1q1u24252e2i2k2p2r494a4g4m4q55
7、565b5g6g6t6u7172737678797a7f7″“g7k7n7o888f8k8p8q989c9f9i9k9l9n9qacanapb0b3bdbfbhblbqbrbuc0c1c4cgcmcscteie”“jgr&ir=73\r”“\r”sendbuf3“!”recvbuf41“!”recvbuf52048“HTTP/1.0200OK\r”“Content-Length:16030\r”“Content-Type:text/html\r”“\r”“buf2包含了发给www.yahoo.com的包,buf5包