|
对winsock脚本来说,手写脚本不是首选。为了理解如何建立脚本和Buffers,你需要知道服务器发送出来的协议
的细节。
为了自动产生脚本,需要录制一个客户端的应用。
如果你对服务器使用的协议非常的了解,那么也许你可以建立一个Data.ws文件和连贯的actions。但是这个过程
一定是单调而乏味的。你要有一些winsock脚本方面的经验。
为了看一个winsock脚本的例子,先试着录制一个简单的WEB应用(比如一个访问某站点首页的动作)。它会生成一
个简单的winsock脚本和buffer内容的格式。
为了建立LoadRunner的winsock脚本,录制一个客户端应用更可取。这样可以让LoadRunner从windows socket通
信中看到客户端和服务器的底层通信。LoadRunner使用wsock32.dll库录制socket通信,这个库包括windows
socket的API。
为了手写LoadRunner的winsock脚本,需要非常熟悉使用的协议。录制一个简单的浏览器的操作可以看到低于HTT
P协议通信的脚本。
下面是一个简单的例子:
[Action section]
lrs_startup(257);
lrs_create_socket("socket3", "TCP", "RemoteHost=slashdot.org:80", LrsLastArg);
lrs_send("socket3", "buf4", LrsLastArg);
lrs_receive("socket3", "buf5", LrsLastArg);
[data.ws section]
send buf4
"GET / HTTP/1.1\r\n"
"Host: slashdot.org\r\n"
"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.4) Geck"
"o/20011128 Netscape6/6.2.1\r\n"
"Accept: text/xml, application/xml, application/xhtml+xml, text/html;q=0.9,"
" image/png, image/jpeg, image/gif;q=0.2, text/plain;q=0.8, text/css, */*;q"
"=0.1\r\n"
"Accept-Language: en-us\r\n"
"Accept-Encoding: gzip, deflate, compress;q=0.9\r\n"
"Accept-Charset: ISO-8859-1, utf-8;q=0.66, *;q=0.66\r\n"
"Keep-Alive: 300\r\n"
"Connection: keep-alive\r\n"
"Cache-Control: max-age=0\r\n"
"\r\n"
recv buf5 16716
"HTTP/1.1 200 OK\r\n"
"Date: Thu, 17 Jan 2002 15:27:13 GMT\r\n"
"Server: Apache/1.3.20 (Unix) mod_perl/1.25 mod_gzip/1.3.19.1a\r\n"
"SLASH_LOG_DATA: shtml\r\n"
"X-Powered-By: Slash 2.003000\r\n"
"X-Bender: The laws of science be a harsh mistress.\r\n"
"Connection: close\r\n"
"Transfer-Encoding: chunked\r\n"
"Content-Type: text/html\r\n"
为了建立这样的脚本,你要知道客户端和服务端通信的时候发送的buffer的格式。这种格式最好适用于指定协议
的任何应用。 |
|