使用LoadRunner录制windows application,启动一个新的SocketTool.exe,创建一个TCP Client,链接刚才启动的服务器,钩选上显示十六进制值,发送313233,别写空格进去,点击发送数据,然后再在服务器端发送点数据回客户端,最后客户端点击断开,脚本就录制完成了。
脚本就四句:
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 1send buf0 3 "123"recv buf1 3 "456"-1 |
后面的脚本就在此基础上修改了。
……………………
查看全文请点击下载:
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; //记录接收到的数据包 lrs_receive_ex("socket0", "buf1", "NumberOfBytesToRecv=4", LrsLastArg); |
说明:
(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就不行了
……
查看全文请点击下载:
本文收录于《51测试天地》电子杂志第二十五期。
版权声明:本文出自51Testing软件测试网电子杂志——《51测试天地》第二十五期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。