I heard and I forgot; I see and I remember; I do and I learned.

loadrunner winsocket脚本

上一篇 / 下一篇  2006-12-25 20:45:17 / 个人分类:测试相关

这几天一直在弄一个loadrunner的cs测试脚本,使用windows socket的cs脚本,弄了几天终于弄出点东东来。
偶的测试脚本如下:

unsigned char uc_key[9];
unsigned char pinkey[17];
unsigned char *mask = (unsigned char *) "19?2<8276:=0839;";

Action()
{
   
    char acTest[512];
    char acTest2[512];
    char* pcTest3;
    int i;
    char pinblock[17];
    char acct[26];
    char acc1[17];
    char balance[12];
    char seq_str[6];
     int i_seq=1;
    char socket_desc[10];
    int handler;
    int ret;   


    lr_load_dll("mydll.dll");

    i_seq++;
   
    sprintf(seq_str,"%.5d",i_seq);
    sprintf(socket_desc,"sock%.5d",i_seq);
    //char  *filename="1.out";
    //long  filestream;
   
    //filestream=fopen(filename,"w");
    lrs_create_socket(socket_desc, "TCP", "RemoteHost=192.168.101.79:7001", LrsLastArg);
   
   

    //生成发送的串
    sprintf(acTest,"ABCDEA");
    strcat(acTest,"1205");
    strcat(acTest,"RQK");
    strcat(acTest,seq_str);
    strcat(acTest,seq_str);
    strcat(acTest,"0000000000000000O");
   

    //指定发送的串
    lrs_set_send_buffer (socket_desc, acTest, strlen(acTest));
    //发送,由于之前运行了lrs_set_send_buffer,所以这里的"buf0"参数无效

    lrs_send(socket_desc, "buf0", LrsLastArg);

    lrs_set_recv_timeout2(0,0);
    //接收返回的串
    lrs_receive(socket_desc, "buf1", LrsLastArg);
    //把返回的串放到变量中
    pcTest3=lrs_get_received_buffer (socket_desc, 0, -1, NULL);

    //fprintf(filestream,"recv=[%s]\n",pcTest3);
    memcpy(uc_key,pcTest3+18,8);
    unshuffle_key(uc_key);
    //lr_output_message("recv=[%s]\n",pcTest3);
    lr_output_message("uc_key=[%s]\n",uc_key);
    memset(pinkey,0,sizeof(pinkey));

    for (i = 0; i < strlen(uc_key);i++)
    {
        pinkey[2*i]='3';
        pinkey[2*i+1]=uc_key[i];
    }
    lr_output_message("pinkey=[%s]\n",pinkey);
    //对返回串中的数据操作
    if( (strncmp(pcTest3,"ABP",3))==0 )
    {
        //modadd((unsigned char *)uc_key,(unsigned char *)"35827629",8);
        //lr_output_message("next uc_key=[%s]\n",uc_key);
        //String header = "ABCDEA" + terminalid + tranactioncode + seq + seq + "0124011200000002C";
        //header 6+4+3+5+5+17
       
        i_seq++;
        sprintf(socket_desc,"sock%.5d",i_seq);
        sprintf(seq_str,"%.5d",i_seq);
        sprintf(acTest2,"ABCDEA");
        strcat(acTest2,"1205");
        strcat(acTest2,"INQ");
        strcat(acTest2,seq_str);
        strcat(acTest2,seq_str);
        strcat(acTest2,"0000000000000000O");
        //sprintf(acTest,"ABCDEA1205INQ09046090460000000000000000O");
        //track3,track2  104+37
        strcat(acTest2,"999551002600007435017=1561560000000000000003000000214000000001=000000000000=000000000000=0000000274060009551002600007435017=00002202740600000");
        //pinblock
        strcpy(pinblock,"1205000006111111");
        encrypt_pinblock((unsigned char *)pinblock,pinkey);
        lr_output_message("encrypted pinblock=[%s]\n",pinblock);
        strcat(acTest2,pinblock);
        //account
        strcpy(acct,"9551002600000000115000000");
        memcpy(acc1,acct+2,16);
        shuffle((unsigned char *)acc1, (const unsigned char *)uc_key,(const unsigned char *)mask, 16);
        strcpy(acct,"95");
        memcpy(acct+2,acc1,16);
        memcpy(acct+2+16,"5000000",7);
        strcat(acTest2,acct);

        lrs_create_socket(socket_desc, "TCP", "RemoteHost=192.168.101.79:7001", LrsLastArg);

    //    handler=lrs_get_socket_handler(socket_desc);
    //    lr_output_message("handler=[%d]\n",handler);

        ret=lrs_set_send_buffer (socket_desc, acTest2, strlen(acTest2));
        lr_output_message("ret=[%d]\n",ret);

        lrs_send(socket_desc, "buf0", LrsLastArg);

        lrs_set_recv_timeout2(0,0);

        lrs_receive(socket_desc, "buf1", LrsLastArg);
        pcTest3=lrs_get_received_buffer (socket_desc, 0, -1, NULL);
        //lr_output_message("recv2=[%s]\n",pcTest3);
        memset(balance,0,sizeof(balance));
        memcpy(balance,pcTest3+59,11);
        unshuffle((unsigned char *)balance, (const unsigned char *)uc_key, (const unsigned char *)mask, 11);
        lr_output_message("balance=[%0.2f]\n",atof(balance));
        lrs_free_buffer(pcTest3);
       
    }
    //fclose(filestream);

    return 0;
}


说明:
其实就是一个取款机的客户端,用它来压我的前置系统的。


TAG: socket 测试相关

云卷云舒的个人空间 引用 删除 apl137   /   2012-09-06 15:17:36
char* buf = "\n";

        lrs_startup(257);

   lrs_create_socket("socket0", "TCP", "RemoteHost=127.0.0.1:13011",  LrsLastArg);

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

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

   buf=lrs_get_received_buffer("socket0",0,-1,NULL);

   if(buf[0]!= '\n')

    lr_output_message("buf not null");

    lr_output_message("recv=%s\n",buf);
增加lrs_receive后可以打出结果
hahahahahahaha的个人空间 引用 删除 hahahahahahaha   /   2012-02-15 15:21:51
我获取服务器端的响应时,返回的得不到值,判断不为空,就是不显示,我是个菜鸟,求大师给个解释呀?
hahahahahahaha的个人空间 引用 删除 hahahahahahaha   /   2012-02-15 15:20:19
char* buf = "\n";
    lrs_create_socket("socket1","TCP","RemoteHost=127.0.0.1:1234",LrsLastArg);
        lrs_send("socket1", "buf0",  LrsLastArg);       
    buf=lrs_get_received_buffer("socket1",0,-1,NULL);
   if(buf[0]!= '\n')
    lr_output_message("buf not null");

    lr_output_message("recv=%s\n",buf);
 

评分:0

我来说两句

我的栏目

日历

« 2024-04-28  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 6153
  • 日志数: 4
  • 图片数: 1
  • 建立时间: 2006-12-08
  • 更新时间: 2007-02-05

RSS订阅

Open Toolbar