• loadrunner socket协议问题归纳(2)


    编写步骤

    1.建立与服务端的连接

    rc=lrs_create_socket(“socket0”,”TCP”,”LocalHost=0”,”RemoteHost=127.0.0.1:8808”,LrsLastArg);

    服务端地址和端口号

    连接是否成功?

    rc=0 表示建立连接成功

    2.发送报文和接收报文

    Lrs_send(“socket0”,”buf0”,LrsLastArg);

    //由socket0 通道发送buf0里的数据

    Lrs_receive(“socket0”,”buf1”,LrsLastArg);

    //将socket通道返回的数据存放到buf1中

    3.关闭连接

      Lrs_close_socket(“socket0”);

      //关闭socket0通道

    完整脚本参考:

    Action()

    {

    char*recvbuf;

    intrecvlen=0;

    intrc;

    lr_start_transaction("Trans_socket");//事务

    lrs_set_recv_timeout(60,0);//接收超时时间

    lr_start_transaction("Conn_socket");

    rc= lrs_create_socket("socket0", "TCP","LocalHost=0", "RemoteHost=127.0.0.1:8808",LrsLastArg);     //RemoteHost处填入被测程序所在服务器IP  

    lr_output_message("rc=%d",rc);

    if(rc != 0 ) {

    lr_end_transaction("Conn_socket",LR_FAIL);

    lr_end_transaction("Trans_socket", LR_FAIL);

    return0;

    }else{

    lr_end_transaction("Conn_socket",LR_PASS); } //判断socket是否链接成功的事务

    lr_rendezvous("集合点");

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

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

    lrs_get_last_received_buffer("socket0",&recvbuf,&recvlen);//获取返回内容和返回长度

    //判断报文长度是否正确

    if(recvlen==304)

    lr_end_transaction("Trans_socket",LR_PASS);

    else

    lr_end_transaction("Trans_socket", LR_FAIL);  //判断返回信息的长度是否正确,recvlen处填入预期返回信息的长度

    lrs_close_socket("socket0");

    return0;

    }

    关联函数介绍

    lrs_save_searched_string();

    在静态或接收到的缓冲区中搜索出现的字符串,将出现字符串的缓冲区部分保存到参数中

    实例1:

    原始数据为:"0|普通指令下达成功|10000031|"。

    lrs_save_searched_string("socke0","buf1","wtbh","LB/BIN=|","RB/BIN=|",2,0,-1);

    输出结果: "wtbh =10000013" 。在以左边界和右边界第2次出现的地方,获取左右边界里面的所有的值.

    实例2:

    原始数据为:"0|普通指令下达成功|10000031|"。

    lrs_save_searched_string("socke0","buf1","wtbh","LB/BIN=|","RB/BIN=|",1,0,-1);

    输出结果:"wtbh = 普通指令下达成功",在以左边界和右边界第1次出现的地方,获取左右边界里面的所有的值

    实例3:

    原始数据为:"0|普通指令下达成功|10000031|"

    lrs_save_searched_string("socke0","buf1","wtbh","LB/BIN=|","RB/BIN=|",1,4,-1);

    •   输出结果:"wtbh = 指令下达成功",在以左边界和右边界第1次出现的地方,获取左边界为起点的第4个字符后面的数据。

    2.lrs_save_param();

    将静态或接收到的缓冲区(或缓冲区部分)保存到参数中

    实例:       

    lrs_save_param("socket0","buf1","wtbh",34, 8);  

       

    从数据包中第34个字符开始连续取8个字符。

  • 相关阅读:
    关系型数据库性能优化总结(转载)
    分区视图(转载)
    硬盘Raid
    AutoFac
    OSI各层的功能和主要协议(转载)
    Squid
    Nginx+Windows负载均衡(转载)
    Mysql命令alter add:增加表的字段
    Delphi调用WebService(通过SoapHeader认证)经验总结
    Delphi开发OCX详细步骤总结
  • 原文地址:https://www.cnblogs.com/VseYoung/p/loadrunner_2.html
Copyright © 2020-2023  润新知