1、创建winsocket脚本
2、简单脚本例子:
vuser_init脚本:
include "lrs.h"
vuser_init()
{
int cs;
lrs_startup(257);//初始化 Windows 套接字 DLL
lr_start_transaction("CreateSocket");
cs=lrs_create_socket("socket0","TCP","RemoteHost=IP地址:端口号",LrsLastArg);
if(cs==0)
{
lr_end_transaction("CreateSocket",LR_PASS);
}
else
{
lr_end_transaction("CreateSocket",LR_FAIL);
}
return 0;
}
Action脚本
#include "lrs.h"
int b;int a;
char sendcontent[300]; //发送信息
char re_buf[4000]; //服务器返回信息
char receiveddata1[100];
int receiveddatalenth;
char mobile[16];
Action()
{
lr_load_dll("test.dll");
strcpy(mobile,lr_eval_string("<phone>"));
lr_output_message("mobile:%s",mobile);
a=GenerateLoginPacket(mobile,"123456","9B739CB4DDE5373BB33C","460016637506147","1","1.0",sendcontent);
lr_think_time(2);
lr_output_message("length:%d",sizeof(sendcontent));
lr_rendezvous("登录");
lr_start_transaction("login");
lrs_save_param_ex("socket0","user",sendcontent,0,a,NULL,"data_param");
lrs_send("socket0", "buf0", LrsLastArg);
lrs_receive("socket0","buf1",LrsLastArg);
lrs_set_recv_timeout2(6,0); //为接收套接字上的初始预期数据设置超时,对全局有效
lrs_save_param_ex("socket0","received",NULL,19,1,NULL,"receiveddata"); //保存接受包的第20个字符,该字符表示是否成功,成功为0x00
lr_output_message("# 返回内容体:/n %s", lr_eval_string("<receiveddata>"));
strcpy(receiveddata1,lr_eval_string("<receiveddata>"));
lr_output_message("验证数据receiveddata1第20个字节:%s",receiveddata1);
lr_output_message("验证数据receiveddata1第1个字符:%c",receiveddata1[0]);
lr_output_message("验证数据receiveddata1第2个字符:%c",receiveddata1[1]);
lr_output_message("验证数据receiveddata1第3个字符:%c",receiveddata1[2]);//用于匹配成功字符0
lr_output_message("验证数据receiveddata1第4个字符:%c",receiveddata1[3]);//用于匹配成功字符0
if ( receiveddata1[2] == '0' && receiveddata1[3]=='0')
{
lr_end_transaction("login",LR_PASS);
}
else
{
lr_end_transaction("login",LR_FAIL);
}
return 0;
}
vuser_end脚本:
#include "lrs.h"
vuser_end()
{
b=lrs_close_socket("socket0");
lrs_cleanup();//终止Windows套接字 DLL 的使用
return 0;
}
data.ws文件:
;WSRData 2 1
send buf0 300
"<data_param>"
recv buf1 85
-1