自行控制LoadRunner的socket协议性能测试

使用LoadRunner录制windows application,启动一个新的SocketTool.exe,创建一个TCP Client,链接刚才启动的服务器,钩选上显示十六进制值,发送313233,别写空格进去,点击发送数据,然后再在服务器端发送点数据回客户端,最后客户端点击断开,脚本就录制完成了。

346836_201205021101321d8ZH.jpg346836_20120502110135155G5.jpg

  脚本就四句:


lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=server:60000", LrsLastArg);
lrs_send("socket0", "buf0", LrsLastArg);
lrs_receive("socket0", "buf1", LrsLastArg);
lrs_close_socket("socket0");


  数据文件data.ws:


;WSRData 2 1
send  buf0 3
"123"
recv  buf1 3
"456"
-1


  后面的脚本就在此基础上修改了。

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/56/n-811856.html

  5、发送自己定义的数据包

  建立链接我就不写了,发送自己定义的数据包:


lrs_set_send_buffer("socket0", (char *)cOut, strlen(cLine)/2 );
lrs_send("socket0", "buf0", LrsLastArg);


  说明:

  (1)(char *)cOut 是因为函数的参数定义

  int lrs_set_send_buffer ( char *s_desc, char *buffer, int size );

  (2)strlen(cLine)/2不可写为strlen(cOut),一定要牢牢记住这里不是发送的字符串,而是一个二进制数据包;

  6、接收数据包到自定义缓冲区

  代码:


char *BufVal;              //记录接收到的数据包
int intGetLen=0;           //记录接收数据包的长度

lrs_receive_ex("socket0", "buf1", "NumberOfBytesToRecv=4", LrsLastArg);
lrs_get_last_received_buffer("socket0",&BufVal, &intGetLen);


  说明:

  (1)intGetLen必须定义为int,而不可是long,为啥?函数定义决定的:

  int lrs_get_last_received_buffer ( char *s_desc, char **data, int *size );

  (2)"NumberOfBytesToRecv=4"此处loadrunner的帮助中例子写错了,当时我照着粘贴下来,死活报那个恐怖的<memory violation : Exception ACCESS_VIOLATION received>,后来仔细看了看,明白了,例子上NumberOfBytesToRecv前面多了一个空格,删除了就可以了;

  (3)定义接收数据包长度,这个参数只适应于TCP协议,UDP就不行了

  ……

  查看全文请点击下载:http://www.51testing.com/html/56/n-811856.html

  本文收录于《51测试天地》电子杂志第二十五期。

  版权声明:本文出自51Testing软件测试网电子杂志――《51测试天地》第二十五期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。


你可能感兴趣的:(windows,server,服务器,客户端)