51Testing软件测试论坛
标题:
LR 实用贴,怎样手动编写Winsocket 脚本
[打印本页]
作者:
guirongb
时间:
2006-12-13 15:25
标题:
LR 实用贴,怎样手动编写Winsocket 脚本
有时候,使用LR录制的winsocket脚本一长串,我根本不知道它在干什么,一个简简单单的登入请求竟然录制了上千个Event
在这种情况下,我希望自己手动编写 Winsocket 脚本,把我需要的请求发送出去,然后,等服务器回应就行了
举个简单的例子
一个网络电子词典,从客户端发送要翻译的单词,服务器端翻译并返回结果(这个例子是自己C++ 练手写的,不怎么灵光,要源代码的话,可以给我发消息)
模拟客户端的LR代码如下:
#include "lrs.h"
Action()
{
char acTest[10];
char acSend[10];
char* pcTest3;
//发送指定的数据包
lrs_create_socket("socket0", "TCP", "RemoteHost=127.0.0.1:5150", LrsLastArg);
memset(acTest,0,10);
sprintf(acTest,"<dict>\r\n");
lr_output_message("out value : %s",lr_eval_string(acTest));
strcpy(acSend,lr_eval_string(acTest));
lr_output_message("the Send Value is %s" ,acSend);
lrs_set_send_buffer("socket0",acSend,strlen(acSend));
lrs_send("socket0", "buf0", LrsLastArg);
//接受服务器信息,并将信息打印出来
lrs_receive("socket0", "buf1", LrsLastArg);
pcTest3=lrs_get_received_buffer ("socket0", 0, -1, NULL);
lr_output_message(pcTest3);
return 0;
}
1、我对发送的单词作了一个 Dict的参数化。
2、将这个参数化的单词取出后发送到服务器端。
3、在 data.ws 中添加如下 BUFF
send buf0 8
"n \r\n"
recv buf1 8
" \n"
实际上发送的是 你取出的那个单词,但是,在data.ws 中依然需要注明这两个空的BUFF
这样就完成了手工编写winsocket 的脚本,简单实用。
如果,反应不错的话,我将继续贴深入篇。
[
本帖最后由 guirongb 于 2006-12-13 15:36 编辑
]
作者:
恋恋冬季
时间:
2006-12-13 15:31
谢谢楼主~~学习了
作者:
picture
时间:
2006-12-13 16:52
楼主思路不错,我前段时间正在搞SOCKERT的脚本,楼主意思我明白了,但具体操作上好象还不太明白,能不能讲的具体点!支持
作者:
testeryouyou
时间:
2006-12-13 17:48
顶一个先
作者:
rain_wind
时间:
2006-12-14 08:49
谢谢!
作者:
Zee
时间:
2006-12-15 00:32
顶帖。
作者:
0709ready
时间:
2006-12-18 23:02
标题:
反映不错
up
作者:
oscarli
时间:
2006-12-19 09:39
标题:
顶
!!!!!!!!!!!!!!
作者:
leey
时间:
2006-12-19 11:56
先谢谢,同时麻烦lz高手解释一下 lrs_get_last_received_buffer 和 lrs_get_received_buffer的区别,再谢。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2