LR11 socket通信測(cè)試簡(jiǎn)單分享1
前一段時(shí)間做一個(gè)轉(zhuǎn)發(fā)工具壓力測(cè)試,只是提供IP和端口,下面貼出來(lái)與大家分享,不足之處還請(qǐng)指正:
整個(gè)腳本寫(xiě)法很簡(jiǎn)單,大體來(lái)說(shuō),分三個(gè)步驟:
步驟1:建立到服務(wù)器端連接
rc = lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=127.0.0.1:8808", LrsLastArg);
注:rc=0則表示建立通訊成功
步驟2:發(fā)送報(bào)文和接收?qǐng)?bào)文
lrs_send("socket0","buf0", LrsLastArg);//往socket0發(fā)送buf0的數(shù)據(jù)
lrs_receive ("socket0","buf1",LrsLastArg); //將socket0發(fā)送返回的數(shù)據(jù)存放到buf1中
步驟3:關(guān)閉連接
lrs_close_socket("socket0");//關(guān)閉
到此為止,socket通訊的單次的發(fā)送、接收?qǐng)?bào)文基本沒(méi)有什么問(wèn)題了,完整源碼如下:
#define _EOF '#' #include "lrs.h" Action() { char *recvbuf; int recvlen=0; int rc; lr_start_transaction("Trans_socket");//事務(wù) lrs_set_recv_timeout (60,0);//接收超時(shí)時(shí)間 lr_start_transaction("Conn_socket"); //RemoteHost處填入被測(cè)程序所在服務(wù)器IP rc = lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=127.0.0.1:8808", LrsLastArg); lr_output_message("rc=%d",rc); if (rc != 0 ) { lr_end_transaction("Conn_socket", LR_FAIL); lr_end_transaction ("Trans_socket", LR_FAIL); return 0; } lr_end_transaction("Conn_socket", LR_PASS); //判斷socket是否鏈接成功的事務(wù) lr_rendezvous("集合點(diǎn)"); lrs_send("socket0","buf0", LrsLastArg); lrs_receive ("socket0","buf1",LrsLastArg); lrs_get_last_received_buffer ("socket0",&recvbuf,&recvlen); //判斷報(bào)文長(zhǎng)度是否正確 if(recvlen==304) lr_end_transaction("Trans_socket", LR_PASS); else lr_end_transaction ("Trans_socket", LR_FAIL); //判斷返回信息的長(zhǎng)度是否正確,recvlen處填入預(yù)期返回信息的長(zhǎng)度 lrs_close_socket("socket0"); return 0; } |
data.ws 是報(bào)文部分, buf0 100 ,100是指報(bào)文的長(zhǎng)度,\x表示是16進(jìn)制
報(bào)文內(nèi)容驗(yàn)證,待分享
posted on 2013-10-23 11:01 順其自然EVO 閱讀(1336) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): loadrunner