lrs_startup 初始化 WinSock DLL
lrs_create_socket 初始化套接字
lrs_send 在數據報上(UDP)或者向流套接字(TCP)發送數據
lrs_receive 接收來自數據報或流套接字的數據
lrs_disable_socket 禁用套接字操做
lrs_close_socket 關閉打開的套接字
lrs_cleanup 終止 WinSock DLL 的使用,回收相關資源。VuGen 在 Windows 上使用 Windows 套接字協議支持應用程序的錄製和回放;而在UNIX 平臺上僅支持回放
lrs_accept_connection 接受偵聽套接字鏈接
lrs_close_socket 關閉打開的套接字
lrs_create_socket 初始化套接字
lrs_disable_socket 禁用套接字操做
lrs_exclude_socket 重播期間排除套接字
lrs_get_socket_attrib 獲取套接字屬性
lrs_get_socket_handler 獲取指定套接字的套接字處理程序
lrs_length_receive 接收來自指定長度的緩衝區的數據
lrs_receive 接收來自套接字的數據
lrs_receive_ex 接收來自數據報或流套接字的數據(具備特定長度)
lrs_send 將數據發送到數據報上或流套接字中
lrs_set_receive_option 設置套接字接收選項
lrs_set_socket_handler 設置特定套接字的套接字處理程序
lrs_set_socket_options 設置套接字選項
|
lrs_free_buffer 釋放分配給緩衝區的內存
lrs_get_buffer_by_name 從數據文件中獲取緩衝區及其大小
lrs_get_last_received_buffer 獲取套接字上接收到的最後的緩衝區及其大小
lrs_get_last_received_buffer_size 獲取套接字上接收到的最後一個緩衝區的大小
lrs_get_received_buffer 獲取最後接收到的緩衝區或其一部分
lrs_get_static_buffer 獲取靜態緩衝區或其一部分
lrs_get_user_buffer 獲取套接字的用戶數據的內容
lrs_get_user_buffer_size 獲取套接字的用戶數據的大小
lrs_set_send_buffer 指定要在套接字上發送的緩衝區
|
//存放通訊返回報文
char * ActualBuffer="";
//存放返回報文長度,切記附初值
int numberOfResponse = -1;
//連接是否建立成功,判斷值
int rc = 0;
//返回報文是否成功,判斷值
int msgOk=-1;
//存放返回報文
char * position="";
//返回報文是否成功標識
char * passMsg="succee";
|
//--------------建立鏈接-----------------
rc= lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=<RemoteHost>", LrsLastArg);
if (rc==0){
//判斷鏈接是否建立成功
lr_output_message("Socket was successfully created ");
}
else{
lr_output_message("An error occurred while creating the socket, Error Code: %d", rc);
}
//--------------建立鏈接-----------------
|
lrs_send("socket0", "buf0", LrsLastArg);
//往「socket0」發送"buf0"
lrs_set_receive_option(EndMarker, BinaryStringTerminator, "</html>");
//設置接收協議包選項,注"</html>"以實際定義協議爲準,若是不設置次項。執行到lrs_receive的時候,log裏面打印Waiting for writable socket 10
//secs, 0 usecs,都須要等待10秒鐘。是這樣的,由於你在data.ws中定義了recv buffer的長度,例如你定義爲100,可是socket上的返回buffer長度不
//是100,這時候,loadrunner會嘗試再次去讀取,直到讀到長度爲100的buffer纔算成功。
lrs_receive("socket0", "buf1","Flags=MSG_PEEK ", LrsLastArg);
//將「socket0」中返回的數據存放到「buf1」中
|
//獲取套接字上接收到的最後的緩衝區及其大小
lrs_get_last_received_buffer("socket0",&ActualBuffer,&numberOfResponse);
//查詢返回報文是否成功
position = (char *)strstr(ActualBuffer, passMsg);
// strstr has returned the address. Now calculate * the offset from the beginning of str
msgOk = (int)(position - ActualBuffer + 1);
if(msgOk>0){
lr_end_transaction("核心對私維護", LR_PASS);
lr_output_message("本次交易:%s",ActualBuffer);
}
else{
lr_end_transaction("核心對私維護", LR_FAIL);
lr_error_message("本次交易:%s",ActualBuffer);
}
關閉鏈接
//--------------斷開socket--------------
lrs_disable_socket("socket0", DISABLE_SEND_RECV);
//--------------關閉socket--------------
lrs_close_socket("socket0");
|