日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

loadrunner socket协议问题归纳(5)

發(fā)布時(shí)間:2025/5/22 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 loadrunner socket协议问题归纳(5) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

獲取服務(wù)器的返回值,可以用web_reg_save_param函數(shù),該參數(shù)最好放到:

語法:

int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);

?

參數(shù)說明:

o ParamName: 存放得到的動(dòng)態(tài)內(nèi)容的參數(shù)名稱o list of Attributes: 其它屬性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。屬性值不分大小寫o Notfound: 當(dāng)在返回信息中找不到要找的內(nèi)容時(shí)應(yīng)該怎么處理o Notfound=error: 當(dāng)在返回信息中找不到要找的內(nèi)容時(shí),發(fā)出一個(gè)錯(cuò)誤訊息。這是缺省值。o Notfound=warning: 當(dāng)在返回信息中找不到要找的內(nèi)容時(shí),只發(fā)出警告,腳本也會(huì)繼續(xù)執(zhí)行下去不會(huì)中斷。o LB( Left Boundary ) : 返回信息的左邊界字串。該屬性必須有,并且區(qū)分大小寫。o RB( Right Boundary ): 返回信息的右邊界字串。該屬性必須有,并且區(qū)分大小寫。o RelFrameID: 相對(duì)于URL而言,欲查找的網(wǎng)頁的Frame。此屬性質(zhì)可以是All或是數(shù)字,該屬性可有可無。o Search : 返回信息的查找范圍。可以是Headers,Body,Noresource,All(缺省)。該屬性質(zhì)可有可無。o ORD : 說明第幾次出現(xiàn)的左邊界子串的匹配項(xiàng)才是需要的內(nèi)容。該屬性可有可無,缺省值是1。如為All,則將所有找到的內(nèi)容儲(chǔ)存起來。o SaveOffset : 當(dāng)找到匹配項(xiàng)后,從第幾個(gè)字元開始存儲(chǔ)到參數(shù)中。該屬性不能為負(fù)數(shù),缺省值為0。o SaveLen :當(dāng)找到匹配項(xiàng)后,偏移量之后的幾個(gè)字元存儲(chǔ)到參數(shù)中。缺省值是-1,表示一直到結(jié)尾的整個(gè)字串都存入?yún)?shù)。

?要獲取返回值,那么有2種方法:

第一種方法是通過?SaveOffset?來獲取指定的值,這個(gè)方法適用于返回的值或是格式比較固定,不會(huì)有什么變動(dòng),比如有些接口,返回1,表示已經(jīng)響應(yīng)成功,那么可以用這個(gè)方法來獲取。或是返回來的字段順序都不變,都可以使用該方法。但是當(dāng)返回值的順序有變,而我們要取指定的字段值時(shí),就不適用了,在第二種方法再描述。

第一個(gè)接口請(qǐng)求后,服務(wù)器返回值:

{"orderId":"9854578067073400832","message":"創(chuàng)建訂單成功","status":100}

?

因?yàn)榉祷氐臄?shù)據(jù)格式比較固定,數(shù)據(jù)的順序很少變化,那么可以用如下的函數(shù)來獲取:

web_reg_save_param("orderId","LB=","RB=","ORD=1","SaveOffset=1","SaveLen=31", //獲取運(yùn)行結(jié)果里的orderId "orderId":"9854578067073400832""Search=Body",LAST);

這種方法不是很靈活,很容易報(bào)錯(cuò),當(dāng)返回值有變動(dòng)時(shí)或是返回值的順序有變動(dòng),必須要重新修改,否則運(yùn)行還是會(huì)報(bào)錯(cuò)。用第二種方法,通過取返回值的邊界值,達(dá)到目的:

web_reg_save_param("orderId","LB=orderId","RB=message","ORD=1","SaveLen=23","Search=Body",LAST);

?

會(huì)發(fā)現(xiàn)"SaveLen"取的值不一樣,因?yàn)榈谝环N方法取的值是"orderId":"9854578067073400832",第二種方法,取的值是":"9854578067073400832"

這里只需要傳的參數(shù)修改一下就可以了,如我在用第一種方法時(shí),用如下的參數(shù):

{"account":"13900001111","posId":"N9NL10255029","couponMoney":0,"couponInfo":"","payMoney":0.01,"barcode":"130122475934385558","channelId":"WX",

?

如果用第二種方法,用如下的參數(shù):

{"account":"13900001111","posId":"N9NL10255029","couponMoney":0,"couponInfo":"","payMoney":0.01,"barcode":"130122475934385558","channelId":"WX","orderId

?

取得返回值,用如下的數(shù)據(jù)進(jìn)行拼接: ?

lr_save_string(lr_eval_string("{NewParam}{orderId}}"),"orderId2");

?

?

因?yàn)榇a里面的4接口是業(yè)務(wù)的一個(gè)部分,但在測(cè)試接口的時(shí)候,可以不用管,所以只是放在代碼里面盡可能的模擬業(yè)務(wù)而已,實(shí)際在本代碼中,沒有什么用處,是5接口創(chuàng)建訂單號(hào)orderId給第18接口,并作為第18個(gè)接口的參數(shù)進(jìn)行請(qǐng)求,完整的代碼如下:

Action() { /*
18接口的參數(shù)
{"account":"13900001111","posId":"N9NL10255029","couponMoney":0,"couponInfo":"","payMoney":0.01,"barcode":"130122475934385558","channelId":"WX", {"account":"13900001111","posId":"N9NL10255029","couponMoney":0,"couponInfo":"","payMoney":0.01,"barcode":"130122475934385558","channelId":"WX","orderId5接口的參數(shù) {"account": 13900001111,"payMoney":0.01}

4接口的參數(shù) {"account": 13900001111} *///18掃描支付接口的前半部分參數(shù)char * tmpParam = lr_eval_string("{NewParam}");//5創(chuàng)建訂單接口的參數(shù)char * tmpParam2 = lr_eval_string("{NewParam_2}");//4獲取商戶開通支付方式char * tmpParam3 = lr_eval_string("{NewParam_1}");web_set_proxy("10.16.1.151:180"); //設(shè)置請(qǐng)求頭,沒有這個(gè),請(qǐng)求會(huì)不認(rèn)得 web_custom_request該函數(shù)的json請(qǐng)求web_add_header("content-type","application/json");lr_save_string(lr_eval_string("{NewParam_1}"),"tmpParam3");web_custom_request("4","URL=http://10.16.1.151:180/getMerchantPayType","Body={tmpParam3}","Method=POST","mode=HTML",LAST);web_add_header("content-type","application/json"); //把5創(chuàng)建訂單的參數(shù),獲取過來,賦值給tmpParam2lr_save_string(lr_eval_string("{NewParam_2}"),"tmpParam2");//獲取5接口返回的參數(shù),指定的參數(shù)SaveOffset=31,然后賦值給orderId /*web_reg_save_param("orderId","LB=","RB=","ORD=1","SaveOffset=1",//獲取運(yùn)行結(jié)果里的orderId 45"SaveLen=31","Search=Body",LAST); */ //獲取5接口返回的參數(shù),指定的參數(shù),然后賦值給orderIdweb_reg_save_param("orderId","LB=orderId","RB=message","ORD=1","SaveLen=23","Search=Body",LAST);//5接口創(chuàng)建訂單,向服務(wù)器請(qǐng)求 web_custom_request("5","URL=http://10.16.1.151:180/onlineOrder","Body={tmpParam2}","Method=POST","mode=HTML",LAST);
//返回的參數(shù) {"orderId":"9854578277036064768","message":"創(chuàng)建訂單成功","status":100}
//獲取5接口返回的參數(shù)orderId賦值給orderIdlr_save_string(lr_eval_string("{orderId}"),"orderId");//打印獲取服務(wù)器回復(fù)指定的參數(shù)lr_output_message(lr_eval_string("{orderId}"));//參數(shù)并接,賦值給orderId2,作為18掃描支付接口的參數(shù) 會(huì)發(fā)現(xiàn)這里有2個(gè)},參數(shù)里面因?yàn)樯倭艘粋€(gè)},所以在參數(shù)后面補(bǔ)充}lr_save_string(lr_eval_string("{NewParam}{orderId}}"),"orderId2");lr_output_message(lr_eval_string("===========:{orderId2}"));web_add_header("content-type","application/json");//掃描支付接口請(qǐng)求web_custom_request("18","URL=http://10.16.1.151:180/scanPay","Body={orderId2}","Method=POST","mode=HTML",LAST);return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/VseYoung/p/loadrunner_5.html

總結(jié)

以上是生活随笔為你收集整理的loadrunner socket协议问题归纳(5)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。