效能測試手冊:一分鐘掌握LoadRunner關聯函式應該放在那
阿新 • • 發佈:2018-12-14
為什麼要有關聯函式
如果客戶端的某個請求是隨著伺服器端的響應而動態變化,我們就需要用到關聯,通過關聯函式獲取動態的返回值,傳給後面的函式使用,完成測試上下文的流程串聯。
定義:在腳本回放過程中,客戶端發出請求,通過關聯函式所定義的左右邊界值(也就是關聯規則),在伺服器返回的響應內容中查詢,得到相應的值,將其儲存的變數中,後續請求再通過對應變數指向的記憶體取出資料發給伺服器發,已完成正確的業務流程的效能測試,這種動態獲得伺服器響應內容的方法被稱作關聯。
關聯函式的位置(經驗結果屢試不爽)
關聯函式簡述
1、 web_reg_save_param("usersession","LB=<input type=hidden name=userSession value=","RB=>",LAST); 2、 web_reg_save_param("usersession","LB=<input type=hidden name=userSession value=","RB=>",“ORD=ALL”,”Savelen=18“,LAST); 其中: usersession是loadrunner的引數名或者引數陣列名。 LB是動態返回值的左邊界 RB是動態返回值的右邊界 ORD=ALL是選擇所有相同左右邊界的字串都存入引數或者引數陣列中 Savelen=18是要儲存的字串的長度 LAST表述函式結束位置
一般關聯函式都是放到出現動態返回引數的錄製響應函式之上,第一個非資源和指令碼的響應之前,就可可以了
舉例
web_url("home.html", "URL=http://127.0.0.1:1080/WebTours/home.html", "Resource=0", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true", "Snapshot=t6.inf", "Mode=HTTP", LAST); web_reg_save_param("usersession","LB=<input type=hidden name=userSession value=","RB=>",LAST); //這個位置就是出現動態引數之前,第一個非資源和指令碼響應的位置 //web_url("nav.pl"))之下有一個js指令碼和若干個圖片類資源 web_url("nav.pl", "URL=http://127.0.0.1:1080/WebTours/nav.pl?in=home", "Resource=0", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=true", "Snapshot=t7.inf", "Mode=HTTP", LAST); web_concurrent_end(NULL); web_concurrent_start(NULL); web_url("JSFormSubmit.js", "URL=http://127.0.0.1:1080/WebTours/JSFormSubmit.js", "Resource=1", "RecContentType=application/x-javascript", "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", "Snapshot=t8.inf", LAST); web_url("mer_login.gif", "URL=http://127.0.0.1:1080/WebTours/images/mer_login.gif", "Resource=1", "RecContentType=image/gif", "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", "Snapshot=t9.inf", LAST); web_concurrent_end(NULL); lr_start_transaction("login-0"); lr_think_time(17); web_submit_data("login.pl", "Action=http://127.0.0.1:1080/WebTours/login.pl", "Method=POST", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", "Snapshot=t10.inf", "Mode=HTTP", ITEMDATA, "Name=userSession", "Value={usersession}", ENDITEM, "Name=username", "Value=test001", ENDITEM, "Name=password", "Value=123456", ENDITEM, "Name=JSFormSubmit", "Value=on", ENDITEM, "Name=login.x", "Value=53", ENDITEM, "Name=login.y", "Value=12", ENDITEM, LAST);
其他一些注意事項
- web_set_max_html_param_len()函式可以自定義關聯返回值存放的引數的最大長度,記得一定要寫在關聯函式前面。
- Loadrunner是類C語言,因此很多注意獲取邊界的時候的轉義字元
轉義 | 含義 |
---|---|
\b | Backspace 鍵 |
\f | 換頁 |
\n | 換行 |
\r | 回車 |
\t | 水平製表符 |
\v | 垂直製表符 |
’ | 單引號 |
" | 雙引號 |
\\ | 反斜槓 |
? | 文字問號 |