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个字符。

上一篇:Haproxy基础知识 -运维小结


下一篇:LoadRunner编写Socket协议脚本方法