關聯:將服務器提供動態變化的值存放在變量中,當須要使用該變量時,自動從服務器響應的信息中獲取該值,並在後面使用的過程當中進行替換。(也多是前端頁面動態生成的值)html
當客戶端的某個請求參數是隨着服務器端的響應而動態變化的時候,咱們就須要用到關聯。前端
固然咱們在錄製腳本時應該對測試的項目進行適當的瞭解,知道哪些請求須要用到服務器響應的動態值,若是咱們不明確那些值須要作關聯的話,咱們也能夠將腳本錄製兩遍,經過對比腳本的方法來查找須要關聯的部分,但並非說兩次錄製的全部不一樣點都須要關聯,這個要具體狀況具體分析。 web
關聯和參數化的區別是:正則表達式
參數化:客戶端控制,定義參數值服務器
關聯:客戶端不能控制,將服務器動態返回的值(也多是前端頁面動態生成的值)做爲下一次請求的入參session
關聯函數主要使用web_reg_save_param和web_reg_save_param_ex,兩者的區別就是後者在左右邊界中可使用正則表達式,但我主要仍是使用前者偏多。函數
web_reg_save_param("參數名","LB=左邊界","RB=右邊界",LAST); // 註冊函數,在參數值出現的前面使用,註冊成功時返回值爲0,註冊失敗時返回值爲1。左右邊界需根據TreeView裏相關步驟的SeverResponse代碼來肯定。用這個函數能獲取第一個符合條件的數值。工具
web_reg_save_param("參數名」,"LB=左邊界」,"RB=右邊界","Ord=All",LAST); // 當參數有多個值時,加上"Ord=All」後可獲取全部的數值。註冊成功後,{參數名_count}表示取得的數值個數,{參數名_1}爲第一個數值,{參數名_2}爲第二個數值。測試
查看官網幫助文檔網站
註冊函數要放在獲取關聯值的請求前面
仍是以loadrunner自帶的訂票網站來實操,
先進入首頁作一下配置,啓用session功能
點擊【administrator】
按以下方式勾選,而後點擊【Update】
先錄製腳本,結果是
而後回放腳本(再次運行腳本),登陸失敗,說明用錄製的入參去登陸沒有成功
回放日誌
點擊下面
顯示出差別的地方,就是可能須要關聯的地方,點擊「Correlate」就自動關聯生成關聯函數,可是這種方式不必定準確,因此不推薦
咱們能夠查看頁面源碼
找到變化的值的左右邊界
Action() { web_reg_save_param("loginSession","LB=userSession value=","RB=>",LAST); web_url("WebTours", "URL=http://127.0.0.1:1080/WebTours", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t1.inf", "Mode=HTML", LAST); lr_think_time(1); 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=t2.inf", "Mode=HTML", ITEMDATA, //"Name=userSession", "Value=108380.1963548ffHtiAzpDfDDttipiDiV", ENDITEM, "Name=userSession", "Value={loginSession}", ENDITEM, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=JSFormSubmit", "Value=on", ENDITEM, "Name=login.x", "Value=42", ENDITEM, "Name=login.y", "Value=5", ENDITEM, LAST); return 0; }
回放成功,說明關聯成功
1.錄製兩份相同的腳本,必須保證操做一致且action的劃分一致。
2.保存腳本,須要注意三個方面:1.保存路徑不要太深;2.保存的名稱中不能有空格;3.保存的名稱中不能有中文。
3.關閉一個腳本,選擇tools下的「compare with script」
4.在彈出的界面中選擇「options」—view—show inline diffeences目的是讓wdiff工具顯示腳本中真正有差別的地方,以紅色標註真正不一樣點
5.找出真正不一樣的點,選擇後,使用edit下的copy功能,並將拷貝的內容存到某文件中。
6.分析不一樣點,並在業務系統中找到該不一樣點,肯定左右邊界,對於B/S結構系統,能夠選擇對應的頁面,右鍵查看資源文件。
7.使用alt+insert快捷鍵,選擇web_reg_save_param函數,在出現的界面上輸入變量名,左右邊界,肯定便可,須要注意的是關聯函數的位置。
web_reg_save_param("loginSession", "LB=userSession value=", "RB=>", LAST);
8.回放腳本,進行檢查,若有問題,首先應該考慮的是關聯函數放的位置,接下來要考慮左右邊界是否正確。