Loadrunner中socket基本函数的⽤法与区别
1、发送报⽂函数:lrs_nd 、lrs_length_nd
直接上例⼦:
lrs_nd ("socket5", "buf5", LrsLastArg );
第⼀个参数socket5是指已经建⽴的socket连接的名称,第⼆个参数buf5时需要发送的buf(在data.ws中指定)
lrs_length_nd("socket0", "buf6", LeftRightBoundaries, "LB=LBoundary","RB=:RBoundary", "Offt=10", LrsLastArg);
前两个参数与lrs_nd⼀致,第3、4、5、6个参数指定了要发送内容在buf中的位置,offt为偏移量,例如buf内容为:Start Data LBoundary & Offt:5:RBoundaryDavid
则发送报⽂是David
此函数适⽤于buf中摸个位置存在需要发送报⽂的长度值,⽐如上例中的5
注:当lrs_length_nd的第三个参数指定为0时,此函数相当于lrs_nd
2、接收报⽂函数: lrs_receive、 lrs_length_receive 、lrs_receive_ex
上例⼦:
lrs_receive("socket1","buf1",LrsLastArg);
参数不再解释
注意:官⽅⽂档中有注释,
VuGen determines the expected size of the buffer from the recorded ssion. If the buffer size does not match (smaller or larger),lrs_receive rereads the incoming data carried by the socket, until the receive_timeout. By default the receive_timeout is 10 conds. You can modify the timeout using or.
⼤致意思是如果实际收到的buf⼤⼩与录制的⼤⼩不⼀致,会报不匹配,并尝试重新接收,直到超时,关于此问题,我会另写⼀⽚⽂章。
待接收buf内容是:“12LLLL34LLLLOOOOOfffffsssseeeTTTTTT9RRRRRequestedZZZZZZZZZZZZZZZZZZZZ2LLLLAAAAAAAAAAAAAAAAAAAAAAEndBuf”
lrs_length_receive("socket0", "buffer4", 2, "LB=LLLL", "RB=RRRR", "Offt=27", "Ordinal=1", LrsLastArg);
lrs_receive("socket0", "buffer5", LrsLastArg);
参数不再解释,可以参考官⽅⽂档,右边界向后数9个字节写⼊buffer4中,其余写⼊buffer5中
lrs_receive_ex("socket1", "buf2", " NumberOfBytesToRecv=10", LrsLastArg);
指定接收前10个字节。
3、关联函数:lrs_save_param、lrs_save_param_ex、lrs_save_arched_string
lrs_save_param("socket2", NULL, "param1", 67, 5);
NULL表⽰从最后⼀次接收的buf中取值,67为偏移量、5是取值长度,将取出来的内容保存到param1参数中。
lrs_save_param_ex("socket0", "received", 67,5,"ascii", "param");
此函数的主要作⽤是改变报⽂的编码格式后存⼊参数中
lrs_save_arched_string ("socket0", "buf1", "correlation", "LB/BIN=\\x00\\x01", "RB/BIN=\\x02", 2, 3, -1);
假如buf1中内容是:
"\x00\x01\x85\x80\x00\x01\x00\x01\x00\x00\x00\x00\x07Mercury\x02co\x02il\x00\x00\x01\x00\x01\xc0" 那么保存到参数correlation中的内容是 \x00\x00\x00\x07Mercury
2表⽰左边界出现的第⼆次,3表⽰偏移量,-1是指长度(左右边界都指定时设为-1)
以上内容为简单的函数⽤法,详细可参考官⽅⽂档或者在下⾯评论!