tcp 服务器 性能测试,LoadRunner测试TCP协议服务器性能

/*********************************************************************

* Created by Mercury Interactive Windows Sockets Recorder

*

* Created on: Tue Dec 30 16:04:06

*********************************************************************/

#include "lrs.h"

#include "def.h"

Action()

{

int sendLoginCount=0,sendCrossCount=0;

int loginIndex,loginIndex2;

char* clientId = guid_gen();

char clientId2[100];

char* clientId3;

int clientIdlen;

char* loginSrc = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n"

"    $ClientId\n"

"    $IP\n"

"    $Port\n"

"    \n"

"    \n"

"";

char* loginStr;

int loginStrLen;

char* loginStrLenHex;

char loginStrLenStr[5];

char send_loginHeader[100]="\\x12$Len\\x00\\x010";

char* send_loginHeaderf;

char send_loginStr[1500]="";

//添加路口相关字符串

char* crossSrc= "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n\n"

"    $ClientId\n"

"    $CrossId\n"

"";

char* send_addCrossHeader = "\\x12$Len\\x00\\x02";

char* crossId = lr_eval_string("");

char* crossStr;

char send_crossStr[1700];

char crossStrLenStr[5];

int crossStrLen;

char* send_addCrossHeaderf;

int crossAddIndex,crossAddIndex2;

strcpy(clientId2,lr_eval_string(clientId));

clientId3 = clientId;

//登陆数据

loginStr = strreplace(loginStr,loginSrc,"$ClientId",clientId,strlen(loginSrc));

loginStr = strreplace(loginStr,loginStr,"$IP","127.0.0.1",strlen(loginStr));

loginStr = strreplace(loginStr,loginStr,"$Port","9300",strlen(loginStr));

lr_output_message("loginStr:%s",loginStr);

loginStrLen = strlen(loginStr)+1;

//lr_output_message("loginStrLen:%d",loginStrLen);

//itoa(loginStrLen,loginStrLenStr,16);

sprintf(loginStrLenStr, "%X", loginStrLen);

//lr_output_message("loginStrLenStr:%s",loginStrLenStr);

if(strlen(loginStrLenStr)==2)

{

char tmpH[5];

strcpy(tmpH,loginStrLenStr);

strcpy(loginStrLenStr,"\\x00\\x00\\x00\\x");

strcat(loginStrLenStr,tmpH);

}else{

char tmpH[5];

char tmpD[5];

strcpy(tmpH,loginStrLenStr);

strcpy(tmpH+1,"\0");

strcpy(tmpD,loginStrLenStr+strlen(loginStrLenStr)-2);

strcpy(loginStrLenStr,"\\x00\\x00\\x0");

strcat(loginStrLenStr,tmpH);

strcat(loginStrLenStr,"\\x");

strcat(loginStrLenStr,tmpD);

//lr_output_message("tmpH:%s",tmpH);

//lr_output_message("tmpD:%s",tmpD);

}

//lr_output_message("loginStrLenStr:%s",loginStrLenStr);

send_loginHeaderf = strreplace(send_loginHeaderf,send_loginHeader,"$Len",loginStrLenStr,strlen(send_loginHeader));

//lr_output_message("send_loginHeader:%s",send_loginHeaderf);

strcpy(send_loginStr,send_loginHeaderf);

//lr_output_message("send_loginStr:%s",send_loginStr);

for(loginIndex=0,loginIndex2=strlen(send_loginStr);loginIndex

{

char loginHex[5];

sprintf(loginHex,"\\x%.2X",loginStr[loginIndex]);

//strcat(send_loginBody,loginHex);

strcat(send_loginStr+loginIndex2,loginHex);

}

strcat(send_loginStr+loginIndex2,"\\x0A");

lr_output_message("send_loginStr:%s",send_loginStr);

//创建TCP连接

lr_start_transaction("login");

lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=127.0.0.1:1234",LrsLastArg);

for(sendLoginCount = 0;sendLoginCount < 10;sendLoginCount++)

{

//lr_output_message("send_loginStr:%s",send_loginStr);

lr_output_message("sendLoginCount:%d",sendLoginCount);

lrs_set_send_buffer("socket0",send_loginStr,strlen(send_loginStr));

lrs_send("socket0","buf0",LrsLastArg);

lrs_receive("socket0", "buf1", LrsLastArg);

{

char* login_recv;

int login_recvlen;

int i;

lrs_get_last_received_buffer("socket0",&login_recv,&login_recvlen);

if(login_recvlen!=0)

{

lr_end_transaction("login", LR_AUTO);

lr_output_message("%s",login_recv+15);

//添加路口

lr_output_message("clientId3:%s",lr_eval_string(clientId2));

crossStr = strreplace(crossStr,crossSrc,"$ClientId",clientId3,strlen(crossSrc));

crossStr = strreplace(crossStr,crossStr,"$CrossId",crossId,strlen(crossStr));

lr_output_message("crossStr:%s",crossStr);

crossStrLen = strlen(crossStr)+1;

sprintf(crossStrLenStr,"%X",crossStrLen);

if(strlen(crossStrLenStr)==2)

{

char tmpH[5];

strcpy(tmpH,crossStrLenStr);

strcpy(crossStrLenStr,"\\x00\\x00\\x00\\x");

strcat(crossStrLenStr,tmpH);

}else{

char tmpH[5];

char tmpD[5];

strcpy(tmpH,crossStrLenStr);

strcpy(tmpH+1,"\0");

strcpy(tmpD,crossStrLenStr+strlen(crossStrLenStr)-2);

strcpy(crossStrLenStr,"\\x00\\x00\\x0");

strcat(crossStrLenStr,tmpH);

strcat(crossStrLenStr,"\\x");

strcat(crossStrLenStr,tmpD);

//lr_output_message("cross_tmpH:%s",tmpH);

//lr_output_message("cross_tmpD:%s",tmpD);

}

//lr_output_message("crossStrLenStr:%s",crossStrLenStr);

send_addCrossHeaderf = strreplace(send_addCrossHeaderf,send_addCrossHeader,"$Len",crossStrLenStr,strlen(send_addCrossHeader));

//lr_output_message("send_addCrossHeaderf:%s",send_addCrossHeaderf);

strcpy(send_crossStr,send_addCrossHeaderf);

//lr_output_message("send_crossStr:%s",send_crossStr);

for(crossAddIndex=0,crossAddIndex2=strlen(send_crossStr);crossAddIndex

{

char crossHex[5];

sprintf(crossHex,"\\x%.2X",crossStr[crossAddIndex]);

//strcat(send_loginBody,loginHex);

strcat(send_crossStr+crossAddIndex2,crossHex);

}

strcat(send_crossStr+crossAddIndex2,"\\x0A");

lr_output_message("send_crossStr:%s",send_crossStr);

//lr_output_message("send_loginStr:%s",send_loginStr);

lr_start_transaction("addCross");

for(sendCrossCount=0;sendCrossCount<10;sendCrossCount++)

{

lr_output_message("send_crossStr:%s",send_crossStr);

lr_output_message("sendCrossCount:%d",sendCrossCount);

lrs_set_send_buffer("socket0",send_crossStr,strlen(send_crossStr));

lrs_send("socket0","buf0",LrsLastArg);

lrs_receive("socket0","buf1",LrsLastArg);

{

char* cross_recv;

int cross_recvlen;

lrs_get_last_received_buffer("socket0",&cross_recv,&cross_recvlen);

if(cross_recvlen!=0)

{

lr_end_transaction("addCross", LR_AUTO);

lr_output_message("cross_recv:%s",cross_recv+15);

break;

}else{

//lr_end_transaction("addCross", LR_FAIL);

}

}

}

if(sendCrossCount>10)

{

lr_end_transaction("addCross", LR_FAIL);

}

break;

}else{

//lr_end_transaction("login", LR_FAIL);

}

}

}

if(sendLoginCount>10)

{

lr_end_transaction("login", LR_FAIL);

}

while(1)

{

char* recv;

int recvlen;

lrs_receive("socket0","buf3",LrsLastArg);

lrs_get_last_received_buffer("socket0",&recv,&recvlen);

if(recvlen!=0)

{

lr_output_message("recv:%s",recv+15);

}else{

}

}

lrs_close_socket("socket0");

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值