Loadrunner開發測試腳本html
開發測試腳本能夠經過錄制,也能夠手動開發,建議能錄製的儘可能錄製,省時省力,不能錄製的只能費力本身開發了,具體看項目狀況來決定。web
使用Loadrunner開發腳本過程當中和Jmeter同樣,須要瞭解HTTP傳輸原理,使用Fiddler等工具進程抓包,根據請求信息編寫請求表單,根據響應信息判斷返回值作關聯處理,在Action中插入->新建步驟中添加須要的函數,設置請求參數來逐步完成每一個請求。json
在開發流程測試腳本過程當中,每每須要將上一個請求的返回值做爲下個請求的參數,這時候須要用到關聯,不少時候Loadrunner自動關聯不是萬能的,須要咱們本身定義關聯提取出須要的信息,如下爲關聯部分腳本:app
Action()函數 {工具 lr_start_transaction("打開登錄頁");測試
web_url("web_url",url "URL={URL}/user/login.html",spa "TargetFrame=",調試 "Resource=0", "Referer=", LAST);
lr_end_transaction("打開登錄頁", LR_AUTO);
lr_start_transaction("提交登錄表單");
web_submit_data("web_submit_data", "Action={URL}/user/login.do", "Method=POST", "TargetFrame=", "Referer=", ITEMDATA, "Name=acct", "Value={username}", ENDITEM, "Name=beforeURL", "Value=", ENDITEM, "Name=password", "Value={password}", ENDITEM, "Name=verifyCode", "Value=1234", ENDITEM, LAST);
lr_end_transaction("提交登錄表單", LR_AUTO);
lr_start_transaction("出借列表");
web_url("web_url", "URL={URL}/front/investmentList.html", "TargetFrame=", "Resource=0", "Referer=", LAST);
lr_end_transaction("出借列表", LR_AUTO);
//提取「去出借」請求的「loanId」參數,在「出借」請求中調用; web_reg_save_param("loanId", "LB=type=\"hidden\" id=\"loanId\" value=\"", "RB=\"/>", LAST);
lr_start_transaction("去出借");
web_url("web_url", "URL={URL}/loanObject/2220003.html", "TargetFrame=", "Resource=0", "Referer=", LAST);
lr_end_transaction("去出借", LR_AUTO);
//如下爲提取「出借」請求的關聯,在「出借跳轉」請求參數中調用; web_reg_save_param("functionNum", "LB=functionNum\\\":\\\"", "RB=\\\",\\\"orderId", LAST);
web_reg_save_param("orderId", "LB=orderId\\\":\\\"", "RB=\\\"", LAST);
web_reg_save_param("ordDate", "LB=ordDate\\\":\\\"", "RB=\\\"", LAST);
web_reg_save_param("investorId", "LB=investorId\\\":\\\"", "RB=\\\"", LAST);
web_reg_save_param("borrowerId", "LB=investorId\\\":\\\"", "RB=\\\"", LAST);
web_reg_save_param("fullAmount", "LB=fullAmount\\\":", "RB=,\\", LAST);
web_reg_save_param("amount", "LB=amount\\\":", "RB=,\\", LAST);
web_reg_save_param("signStr", "LB=signStr\\\":\\\"", "RB=\\\"", LAST);
web_reg_save_param("freezeOrdId", "LB=freezeOrdId\\\":\\\"", "RB=\\\"", LAST);
lr_start_transaction("出借");
web_submit_data("web_submit_data", "Action={URL}/loanObject/invest.do", "Method=POST", "RecContentType=application/json", "TargetFrame=", "Referer=", ITEMDATA, "Name=loanId", "Value={loanId}", ENDITEM, "Name=amount", "Value=100", ENDITEM, LAST);
lr_end_transaction("出借", LR_AUTO);
lr_start_transaction("出借跳轉"); web_submit_data("web_submit_data", "Action={URL}/intf/bid.do", "Method=POST", "EncodeAtSign=YES", "TargetFrame=", "Referer=", "Mode=HTML", ITEMDATA, "Name=jsonDataString", "Value={\"functionNum\":\"{functionNum}\",\"orderId\":\"{orderId}\",\"ordDate\":\"{ordDate}\",\"investorId\":\"{investorId}\",\"borrowerId\":\"{borrowerId}\",\"loanId\":\"{loanId}\",\"amount\":{amount},\"fullAmount\":{fullAmount},\"fee\":0.00,\"feeRate\":1.00,\"terminal\":\"pc\",\"maxTenderRate\":0.5,\"isFreeze\":\"Y\",\"freezeOrdId\":\"{freezeOrdId}\",\"signStr\":\"{signStr}\"}", ENDITEM, LAST);
lr_end_transaction("出借跳轉", LR_AUTO);
return 0; } |
提取數據根據請求響應信息的格式編寫關聯腳本,如抓包響應信息以下:
提取orderId參數的關聯腳本爲:
web_reg_save_param("orderId", "LB=orderId\\\":\\\"", "RB=\\\"", LAST); |
腳本調試過程當中,根據腳本調試的目的來選取回放日誌的類型,若是要查看提交表單請求的參數信息,選擇擴展日誌的高級跟蹤:
若是要查看關聯提取值是否正確,選擇擴展日誌的參數替換;