loadrunner的socket脚本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
loadrunner的socket脚本
#include "lrs.h"
Action()
{
char *Data;
int Size=0;
int rc=0;
//返回报文是否成功,判断值
int msgOk=-1;
char *position="";
//返回报文是否成功标识
char *passMsg="<pckgsq>0000<"; //需和服务端进行确认是否一定返回该字符串
int receive_code;
memset(&Data,0,8);
//web_set_sockets_option("CLOSE_KEEPALIVE_CONNECTIO NS","1");
//建立socket
//rc=lrs_create_socket("socket0","TCP","RemoteHost=132.7.
44.237:18003",LrsLastArg);
rc=lrs_create_socket("socket0","TCP","RemoteHost=132.7.41 .67:18003",LrsLastArg);
//rc=lrs_create_socket("socket0","TCP","RemoteHost=132.6.
40.29:18003",LrsLastArg);
if (0==rc) {
lr_output_message("Socket was successfully created ");
}
else
{
lr_output_message("An error occurred while creating the socket, Error Code: %d",rc);
}
//开始事务
lr_start_transaction("socket_trans");
//发送数据
lrs_send("socket0","buf0",LrsLastArg);
//结束发送
//lrs_disable_socket("socket0", DISABLE_SEND);
//lrs_set_recv_timeout(60,0);
//lrs_set_receive_option(EndMarker,StringTerminator,"</mes sage>");
//lrs_set_recv_timeout(0,0);
// lrs_set_recv_timeout(120,0);
//lrs_set_recv_timeout2(10,0);
//lrs_set_receive_option(EndMarker,BinaryStringTerminator," \X00");
//接收服务端发回的数据
receive_code=lrs_receive("socket0","buf1",LrsLastArg);
//receive_code=lrs_receive_ex("socket0","buf1","NumberOfB ytesToRecv=16",LrsLastArg);
//receive_code=lrs_save_param("socket0","buf1","wtbh",6,5 0);
//获取最后返回的缓冲区的数据及其长度
lrs_get_last_received_buffer("socket0",&Data,&Size);
//获取passMsg在返回数据的位置
position=(char *)strstr(Data,passMsg);
msgOk=(int)(position-Data+1); //数组下标从0开始,因此加1以符合使用习惯
//保存参数
lrs_save_param_ex("socket0","user",Data,0,417,"ascii","new_ parameter");
lrs_free_buffer(Data);
//lr_output_message("The result's size is: %d.",Size);
//lr_output_message("The receive code is: %d.",receive_code);
//lr_output_message("The data socket server give is: %s",lr_eval_string("<new_parameter>"));
//lr_think_time(0.010);
//lr_end_transaction("socket_trans",LR_PASS);
//根据msgOk的值,判断事务是否成功
if (msgOk>0) {
lr_end_transaction("socket_trans",LR_PASS);
}
else
{
lr_end_transaction("socket_trans",LR_FAIL);
}
//结束发送
// lrs_disable_socket("socket0", DISABLE_SEND);
//结束接收
lrs_disable_socket("socket0", DISABLE_SEND_RECV);
//关闭打开的socket
lrs_close_socket("socket0");
return 0;
}
---------data文件--------- ecif03_data.ws
;WSRData 2 1
send buf0 156
"000156<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" "<message>\r\n"
"<head>\r\n"
"<prcscd>ecif03</prcscd>\r\n"
"</head>\r\n"
"<body>\r\n"
"<custno>115600000000229</custno>\r\n"
"</body>\r\n"
"</message>\r\n"
recv buf1 417
-1。