1. 自動關聯
2. 手動關聯
可以在【RecordingOptions】>【InternetProtocol】>【Correlation】中啟用關聯規則,則當錄制這些應用系統的腳本時,VuGen會在腳本中自動建立關聯。
您也可以在【RecordingOptions】>【InternetProtocol】>【Correlation】檢視每個關聯規則的定義。
請依照以下步驟使用RuleCorrelation:
1. 啟用auto-correlation
1) 點選VuGen的【Tools】>【RecordingOptions】,開啟【RecordingOptions】對話窗口,選取【InternetProtocol】>【Correlation】,勾選【Enablecorrelation during recording】,以啟用自動關聯。
2) 假如錄制的應用系統屬于內建關聯規則的系統,如AribaBuyer、BlueMartini、BroadVision、InterStage、mySAP、NetDynamics、Oracle、PeopleSoft、Siebel、SilverJRunner等,請勾選相對應的應用系統。
3) 或者也可以針對錄制的應用系統加入新的關聯規則,此即為使用者自訂的關聯規則。
2. 錄制腳本
開始錄制腳本,在錄制過程中,當VuGen偵測到符合關聯規則的數據時,會依照設定建立關聯,您會在腳本中看到類似以下的腳本,此為BroadVision應用系統建立關聯的例子,在腳本批注部分可以看到關聯前的數據為何。
3. 執行腳本驗證關聯是OK的。
CorrelationStudio
當錄制的應用系統不屬于VuGen預設支持的應用系統時,RuleCorrelation可能既無法發揮作用,這時可以利用CorrelationStudio來做關聯。
CorrelationStudio會嘗試找出錄制時與執行時,服務器響應內容的差異部分,藉以找出需要關聯的數據,并建立關聯。
使用CorrelationStudio的步驟如下:
1. 錄制腳本并執行
2. 執行完畢后,VuGen會跳出下面的【ScanAction for Correlation】窗口,詢問您是否要掃描腳本并建立關聯,按下【Yes】按鈕。
3. 掃描完后,可以在腳本下方的【CorrelationResults】中看到掃描的結果。
4. 檢查一下掃瞄的結果后,選擇要做關聯的數據,然后按下【Correlate】按鈕,一筆一筆做,或是按下【CorrelateAll】讓VuGen一次就對所有的數據建立關聯。
注意:由于CorrelationStudio會找出所有有變動的數據,但是并不是所有的數據都需要做關聯,所以不建議您直接用【CorrelateAll】。
5. 一般來說,您必須一直重復步驟1~4直到所有需要做關聯的數據都找出來為止。因為有時前面的關聯還沒做好之前,將無法執行到后面需要做關聯的部份。
手動關聯
手動關聯的執行過程大致如下:
1. 使用相同的業務流程與數據,錄制二份腳本
2. 使用Diff工具比較一下生成的Action.c,找出需要關聯的數據
3. 使用web_reg_save_param函數手動建立關聯
4. 將腳本中有用到關聯的數據,以參數取代
注意動態數據不能放在vuser_init.c文件中。不是所有的差異處都要關聯的,WEB_URL()等方法的參數列表的先后順序是沒關系的,思考時間當然也可以不同。
LR的檢查點設置
常用檢查點函數如下:
1)web_find()函數用于從 HTML 頁中搜索指定的文本字符串;
2)web_reg_find()函數注冊一個請求,以在下一個操作函數(如 web_url)檢索到的HTML網頁上搜索指定的文本字符串;
3)web_image_check()函數用于從HTML頁面中查找指定的圖片;
4)web_global_verfication()屬于注冊函數,注冊一個在web頁面中搜索文本字符串的請求,與web_reg_find只在下一個Action函數中執行搜索不同的是它在之后所有的Action類函數中執行搜索指定的文本字符串;
下面分別介紹以上函數的用法:
1、web_find()函數參數舉例:
web_find("web_find","RighOf=a","LeftOf=b","What=name",LAST);
參數解釋:"web_find"定義該查找函數的名稱;“LeftOf”和“RighOf=”用來定義查找字符的左右邊界;“What=”定義查找內容;
例如上述參數舉例中的意思就是在頁面中查找左邊界為b,右邊界為a,內容為name的信息;
使用該函數注意事項:該函數是在查找頁面中的內容,所以要放在要查找的內容的后面;該函數只能在基于HTML模式錄制的腳本中進行查找
注意事項:使用該函數時,要在Vuser->Run-Tme Settings中更改下設置
勾選Enable Image and text check
系統默認是不勾選該選項的。
2、web_reg_find()函數參數舉例:
web_reg_find("Search=Body","SaveCount=ddd","Test=aaa",LAST);
參數解釋: Search用來定義查找范圍,SaveCount定義查找計數變量名稱,該參數可以記錄在緩存中查找內容出現的次數,可以使用該值,來判斷要查找的內容是否被找到;
例如上述參數舉例中的意思就是Body中查找內容為aaa的信息,并將出現次數記錄在變量ddd中;
【代碼一:web_reg_find("Text=PaymentDetails",LAST);
代碼思路:1.“Payment Details” 為你要檢查的文本;
2. 腳本執行到此處,若在頁面上找到了這幾個字符串,那腳本繼續執行下去;若沒有找到,腳本將在此報錯并且結束。
3、web_image_check()函數參數說明:
web_image_check("web_image_check","Alt=","Src=",LAST);
參數解釋:“Alt”和“Src”的值直接取該圖片在網頁源代碼中相應參數的值;
注意事項:使用該函數時,要在Vuser->Run-Tme Settings中勾選Enable Image and text check,具體操作請看web_find()中的注意事項。
插入函數的方法
1、 手工寫入,在需要插入函數的位置手工寫入該函數;
2、 光標停留在要插入函數的位置,在INSERT菜單中,選擇new step,在列表中選擇或查找要插入的函數,根據提示填寫必要的參數;
3、 在tree view模式下,在樹狀菜單中選中要插入函數的位置,右鍵,選擇insert after或insert before,根據提示填寫必要的參數;
總結:
1、 這兩個函數函數類型不同,WEB_FIND是普通函數,WEB_REG_FIND是注冊函數;
2、 WEB_FIND使用時必須開啟內容檢查選項,而WEB_REG_FIND則不沒有此限制;
3、 WEB_FIND只能用在基于HTML模式錄制的腳本中,而WEB_REG_FIND沒有此限制;
4、 WEB_FIND是在返回的頁面中進行內容查找,WEB_REG_FIND是在緩存中進行查找;
5、 WEB_FIND在執行效率上不如WEB_REG_FIND;
使用web_concurrent_start報錯
錄制方式選的是HTML-based script,改為url-based script就可以了。該函數不支持HTML-based script方式。
LR中的腳本變量聲明報錯
Loadrunner使用的是C語言的語法。腳本中變量必須在開頭聲明。比如說,在Vuser_init、Action、Vuser_end定義變量,必須現在最頂端生命,后面才能使用。如果不這樣,編譯器是通不過的。