LR socket协议(收集)

参考文章:

利用LoadRunner编写socket性能测试脚本 

loadrunner之socket协议脚本编撰

loadrunner测试TCP协议服务器性能

loadrunner中socket协议中的关联函数

loadrunner socket 协议 归纳(一)

Windows 下单机的TCP连接数

 

自行控制loadrunner的socket协议性能测试

LoadRunner中winsocket协议脚本回放时的mismatch问题处理方法

LoadRunner -Socket报文解析返回的报文并取特定的值 

int receive_ex(char* socketID, char* buf)
{
    char flag[50];
char *Buffer;
int NumberOfBytes = 0;

lr_save_string("","LastReviceData");
    memset(flag, 0, sizeof(flag));
sprintf(flag, "NumberOfBytesToRecv=%d", 1000000);
lrs_set_recv_timeout2(0,0);
lrs_receive_ex(socketID, buf, flag, LrsLastArg);
lrs_get_last_received_buffer(socketID, &Buffer, &NumberOfBytes);
lrs_save_param_ex(socketID,"received",NULL,0,NumberOfBytes,"ascii","LastReviceData");
//lr_output_message("%s",lr_eval_string("{LastReviceData}"));
}

void socket_sendAndRec_tran(char* socketName,char* bufName,char* recvBufName,char* tranName)
{
if(tranName != "")
   lr_start_transaction(tranName);
lrs_send("socket0", bufName, LrsLastArg);
receive_ex("socket0", recvBufName);
if(tranName != "")
        lr_end_transaction(tranName, LR_AUTO);
}

void socket_sendAndRec(char* socketName,char* bufName,char* recvBufName)
{
lrs_send("socket0", bufName, LrsLastArg);
receive_ex("socket0", recvBufName);
}

void socket_sendAndRecUserIndex(char* socketName,int fromIndex,int toIndex)
{
int i;
char bufName[50];
memset(bufName, 0, sizeof(bufName));
for (i = fromIndex; i <= toIndex; i++) {
sprintf(bufName, "buf%d", i);
lrs_send("socket0", bufName, LrsLastArg);
i++;
sprintf(bufName, "buf%d", i);
receive_ex("socket0", bufName);
}
}

char* GetReviceXmlData(char* propertyName)
{
lr_save_string(propertyName,"propertyName");
lr_save_string("","OutputParam"); 
//lrs_set_receive_option(EndMarker,EndMarker_None);
//lr_error_message(lr_eval_string("LB/BIN=<{propertyName}>"));
//lr_error_message(lr_eval_string("RB/BIN=</{propertyName}>"));

lrs_save_searched_string("socket0",NULL,"OutputParam","LB/BIN=<{propertyName}>","RB/BIN=</{propertyName}>",1,0,-1);
    //lr_xml_get_values("XML={LastReviceData}","ValueParam=OutputParam",lr_eval_string("Query=/{propertyName}"),LAST);

//lr_error_message(lr_eval_string("GetReviceXmlData {propertyName} = {OutputParam}"));
return  lr_eval_string("{OutputParam}");
}


vuser_init()
{
    lrs_startup(257);

    lrs_create_socket("socket0", "TCP", "RemoteHost=192.168.56.28:8000",  LrsLastArg);

    socket_sendAndRecUserIndex("socket0",0,7);
lr_save_string(GetReviceXmlData("d_session_id"),"d_session_id");
lr_save_string(GetReviceXmlData("l_login_id"),"l_login_id");

//lr_error_message(lr_eval_string("Query  d_session_id = {d_session_id}"));
//lr_error_message(lr_eval_string("Query  l_login_id = {l_login_id}"));

socket_sendAndRecUserIndex("socket0",8,13);

      //lrs_create_socket("socket1", "TCP", "LocalHost=0", "RemoteHost=ip:80",  LrsLastArg);
      //socket_sendAndRecUserIndex("socket0",14,15);
      //lrs_disable_socket("socket1", DISABLE_SEND);
      //lrs_close_socket("socket1");

       //socket_sendAndRecUserIndex("socket0",16,147);
return 0;
}



#include "lrs.h"


Action()
{
char* returnCode;

lr_start_transaction("订票");
socket_sendAndRecUserIndex("socket0",152,153);
//socket_sendAndRecUserIndex("socket0",144,157);

returnCode = GetReviceXmlData("ErrCode");
lr_error_message("dsdsdsds ErrCode = %s",returnCode);

if(returnCode[0] != '0')
{
return -1;
}
        lr_end_transaction("订票", LR_AUTO);

        //lrs_send("socket0", "buf158", LrsLastArg);
        //lrs_receive("socket0", "buf159", LrsLastArg);
        return 0;
}

 

vuser_init()
{
    lrs_startup(257);

    lrs_create_socket("socket0", "TCP", "RemoteHost=192.168.56.26:30201",  LrsLastArg);

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

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

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

    lrs_receive("socket0", "buf3", LrsLastArg);
  
  lrs_send("socket0", "buf4", LrsLastArg);
//lrs_receive("socket0", "buf5", LrsLastArg);
//lr_save_string("","LastReviceData");
    //memset(flag, 0, sizeof(flag));
//sprintf(flag, "NumberOfBytesToRecv=%d", 2048);
lrs_set_recv_timeout2(0,0);
lrs_receive_ex("socket0", "buf5", "NumberOfBytesToRecv=2048", LrsLastArg);


    //t2sdk_receive_ex("socket0", "buf5");

   lrs_get_last_received_buffer("socket0", &Buffer, &NumberOfBytes);

   lrs_save_param_ex("socket0","user",Buffer,0,NumberOfBytes,"ascii","LastReviceData");
   lr_error_message("!!!! Buffer=%s", lr_eval_string(""));
   sprintf(outPut,"%s",lr_eval_string(""));
   lr_error_message("outPut=%s",outPut);
   lrs_save_searched_string("socket0",NULL,"paramUser_token","LB=user_token",NULL,1,7,14);
   lr_error_message("!!!! paramUser_token=%s", lr_eval_string("")); 
   lrs_save_searched_string("socket0",NULL,"OutputParam","LB=user_token",NULL,1,7,14);
   //lr_error_message("!!!! Buffer=%s", lr_eval_string("")); 
   user_token = lr_eval_string("");
    //lrs_receive("socket0", "buf6", LrsLastArg);
lr_error_message("!!!! user_token=%s", user_token);
    //lrs_send("socket0", "buf7", LrsLastArg);*/    
    

    return 0;
}

 

posted @ 2015-07-28 15:42  milkty  阅读(1576)  评论(0)    收藏  举报