通常請求中看到 hash strings, random strings, session ID 這種,就須要動態去獲取該內容,這樣就須要用到關聯。css
1. 錄製腳本並執行。html
2. 打開「Scan Action for Correlation」窗口,該窗口會詢問用戶是否要掃描腳本並創建關聯,單擊「yes」按鈕,掃描腳本。web
有多種方式能夠打開「Scan Action for Correlation」窗口:session
3. 掃描完後,能夠在腳本下方的「Correlation Results」中看到掃描的結果。dom
4. 檢查一下掃描的結果,選擇要作關聯的數據,而後單擊「Correlation」按鈕,逐次關聯。函數
這裏點擊列出的關聯條目,能夠看到上面以Tree View 的方式對Record 和 Replay 的結果進行比對,方便肯定要不要進行關聯。工具
5. 重複步驟1 ~ 步驟4 ,直到全部須要作關聯的數據都找出來爲止。url
好比你在請求request15的時候須要用到 userid,結果你發現request2的Response裏面有userid,那麼你要在request2的前面添加關聯腳本,假設保存到的參數爲userid_result,那麼在request15裏面就能夠直接像使用參數那樣使用{userid_result} 。spa
假設頁面返回的部分 response 以下:3d
咱們須要獲取上面 <title>和 </title>之間的內容,保存到參數 TitleName裏面,留着後邊用。
那麼咱們須要在該頁面請求的前面添加關聯腳本。
1. 鼠標右鍵,選擇 Insert –> New Step。
2. 在 Find Function 中輸入 web_reg_save_param_ex,點擊OK。
3. 編輯彈出框以下。
Parameter Name:獲取的內容要保存到的參數名稱,好比這裏我想保存到TitleName裏面,就輸入TitleName。
Left Boundary:左邊界。上面看左邊界咱們能夠輸入」title>「
Right Boundary:右邊界。上面看右邊界咱們能夠輸入」</title「
Scope:表示查找範圍,好比這裏在選擇在BODY裏面查找。還有其餘選項,好比HEADERS、COOKIES
Request URL:表示查找的URL的範圍。
4. 點擊OK生成腳本。
能夠在該頁面請求後使用 lr_output_message 打印該參數查看是否正確。
web_reg_save_param_ex( "ParamName=TitleName", "LB=title>", "RB=</title", SEARCH_FILTERS, "Scope=Body", "RequestUrl=*/www.cnblogs.com/*", LAST); web_url("www.cnblogs.com", "URL=http://www.cnblogs.com/", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t17.inf", "Mode=HTML", LAST); lr_output_message("TitleName:%s",lr_eval_string("{TitleName}"));
5. 運行,查看Log
Action4.c(4): Registering web_reg_save_param_ex was successful [MsgId: MMSG-26390] Action4.c(13): Found resource "http://www.cnblogs.com/bundles/aggsite.css? ....... Action4.c(13): web_url("www.cnblogs.com") was successful, 269803 body bytes, 18741 header bytes [MsgId: MMSG-26386] Action4.c(22): TitleName:博客園 - 開發者的網上家園
能夠看到正確獲取了咱們想要的內容。
感想就是,手動關聯必定要想着怎樣去界定你要獲取的內容,左邊界右邊界必定要對,而後儘量的在Filters裏面縮小範圍就能夠。
假設要獲取的內容在 「www.cnblogs.com「的response body裏面。
方法:
1. 切換到 Tree View視圖。
選擇 View –> Tree View便可。
2. 選中 Url: www.cnblogs.com 。
3. 點擊HTTP View 查看該連接的 HTTP視圖。
4. 點擊Response Body查看該請求返回的響應結果。
5. 用鼠標選中要獲取的內容,而後點擊右鍵,選擇Create Correlation,點擊「是」。
6. 切換回腳本視圖查看關聯是否添加成功。
選擇 View –> Script View便可。
//Correlation comment - Do not change!Original value='鍗氬鍥?- 寮€鍙戣€呯殑緗戜笂瀹跺洯' Name ='CorrelationParameter_1' web_reg_save_param_ex( "ParamName=CorrelationParameter_1", "LB=title>", "RB=</title", SEARCH_FILTERS, "Scope=Body", "RequestUrl=*/www.cnblogs.com/*", LAST);
左右邊界含有特殊字符時,須要用到轉義字符「\」。
常見的特殊字符表示以下:
\b 退格 \f 換頁 \n 換行 \r 回車 \t 水平製表 \v 垂直製表 \\ 反斜槓 \? 問號字符 \' 單引號字符 \" 雙引號字符 \0 空字符
看下面的例子,我須要獲取imgId的值:
關聯腳本以下:
web_reg_save_param_ex( "ParamName=image_id_value", "LB=imgId\":\"", "RB=\",", SEARCH_FILTERS, "Scope=Body", "RequestUrl=*/sendimagecode*", LAST);
可使用LoadRunner自帶的工具 WinDiff來比較腳本的不一樣,進而找出須要進行關聯的地方。
1) 錄製兩遍腳本,假設分別爲 s1 和 s2
2) 使用WinDiff 工具找出兩次腳本的不一樣,判斷是否須要進行關聯
打開s2,打開 tool –> compare with Script,選擇s1。
兩個腳本不一樣的地方 WinDiff 會進行標黃處理。
3)通常兩個腳本不一樣的地方都須要進行關聯處理。
lr_think_time表示等待時間,這個不一樣的話不用管。
4)找到產生該不一樣文字是在哪一個request返回的response裏面,咱們在該resquest前面添加關聯函數便可。