LoadRunner11-設置集合點及檢查點

一、設置集合點
       集合點可以控制各個Vuser以便在同一時刻執行任務,藉助集合點,可以在loadrunner中實現真正意義上的完合一樣的併發。
       當使用集合點時,可以在系統上模擬較重的用戶負載。當某個Vuser到達該集合點時,Controller會將其保留,直到參與該集合的全部Vuser都到達。當滿足集合條件時,Controller釋放Vuser,這樣可以產生非常密集的同一類用戶操作或請求。Vuser從集合釋放後,將執行腳本中的下一個任務。集合點一般會創建在用戶事務的開始標誌彰。只能在腳本的Action部分(而不是init或end部分)添加集合點。
       Lr_rendezvous(“集合點名”)


如何設置集合點-錄製登錄testlink腳本爲例:
1.從菜單中選擇運行Virtual User Generator,在New Virtual User窗口選擇Web(HTTP/HTML)協議,點擊“Create”按鈕。

2.在彈出的窗口中輸入要錄製的url地址http://192.168.1.251/testlink/login.php?note=expired,並選擇"Record into Action"爲vuser_init,點擊OK正式開始錄製,這時會自動打開登錄主頁面。
3.點擊工具條“暫停”按鈕暫停錄製,並選擇“Record into Action”爲Action,在登錄主頁面輸入用戶名XXX,密碼XXX,點擊“login”按鈕進行登錄,登錄成功後點擊工具條“停止”按鈕結束錄製,登錄腳本錄製成功。

4.在腳本Action部分右鍵選擇“Insert→Start Transaction”彈出一個對話框,輸入一個事務名字login,點擊OK,“Start Transaction”插入完成後,還需要插入一個“End Transaction”,用以標識事務結束。
5.在開始事務前插入集合點,右鍵選擇“Insert”→“rendezvous”彈出一個對話框,輸入集合點名字爲login,點擊OK集合點設置完畢。

二、手動設置檢查點

爲了檢查web服務器返回的網頁結果是否正確,VuGen支持在腳本中插入Test/Imag檢查點。檢查點有兩種圖片和文字。可以用三個函數實現:
web_find()
web_reg_find()
web_image_check()
 
1.web_find()函數
函數作用:在HTML頁面中查找相應的內容
參數舉例:web_find("web_find","RighOf=a","LeftOf=b","What=name",LAST);
參數解釋:"web_find"定義該查找函數的名稱;“LeftOf”和“RighOf=”用來定義查找字符的左右邊界;“What=”定義查找內容。
例如上述參數舉例中的意思就是在頁面中查找左邊界爲b,右邊界爲a,內容爲name的信息
函數用法:該函數是在查找頁面中的內容,所以要放在要查找的內容的後面。
注意事項:
1.使用該函數時,要在Vuser->Run-Tme Settings中勾選Enable Image and text check,系統默認是不勾選該選項的。
2.函數只能在基於HTML模式錄製的腳本中進行查找。
查找用戶是否登錄testlink成功信息-Testlink 1.8.5 [test desingner]
1.切換到Tree view視圖,選擇action中樹形菜單需要插入檢查點的一項,然後點擊鼠標右鍵,選擇插入到該操作執行前Insert after,如圖:
2.在彈出的對話框中選擇“Test Check”,點擊“OK”出現Text Check Properties對話框,在“search for ”中填入需要查找信息“TestLink 1.8.5 : XXX [test designer]”, 點擊“確定”完成添加text檢查點。

3.切換到script view視圖,可以看到插入test文本檢查點函數web_find(),點擊“回放”按鈕進行搜索所要查詢的文本,在replay Log日誌中可以看到Action.c(38): "web_find" successful. 1 occurrence(s) of "TestLink 1.8.5 : XXX [test designer]" found (RightOf="", LeftOf="")   [MsgId: MMSG-27196]
Action.c(38): web_find was successful    [MsgId: MMSG-26392]

2、web_reg_find()函數
函數作用:在緩存中查找相應的內容
參數舉例:web_reg_find("Search=Body","SaveCount=ddd","Test=aaa",LAST);
參數解釋:
1.Search 用來定義查找範圍,默認All,也可選擇 “headers”或body”部分
2.SaveCount定義查找計數變量名稱,該參數可以記錄在緩存中查找內容出現的次數,可以使用該值,來判斷要查找的內容是否被找到
3.Text用來定義查找內容
4.Fail if指定在任何情況下報錯,有“NotFound”和“Found”兩種選擇
A. web_reg_find("Text=testlink", "Fail=NotFound",LAST);或者
B. web_reg_find("Text=testlink", "Fail=Found",LAST);
 
 代碼思路:
1.“testlink" 爲你要檢查的文本;
2. 若是A代碼:腳本執行到此處,若沒有找到check的字符串,腳本將FAIL, 並且停止執行下去。反之,則一直執行下去。
3. 若是B代碼:腳本執行到此處,若找到check的字符串,腳本將FAIL, 並且停止執行下去。反之,則一直執行下去。
函數用法:該函數是在緩存中查找相應的內容,所以要放在查找內容之前。
 
查找用戶XXX是否登錄testlink成功信息-Testlink 1.8.5 [test desingner]
1.切換到Tree view視圖,選擇action中樹形菜單需要插入文本檢查點的一項,然後點擊鼠標右鍵,選擇插入到該操作執行前Insert before,如圖:
2.在彈出的對話框中選擇“web_reg_find”,點擊“OK”出現Find Text 對話框,在“search for specific text”中填入查找信息“TestLink 1.8.5 : XXX [test designer]”, 在“search in”設置查詢範圍默認“All”,定義Savecount計數變量爲 “regcheck”,Fail if選擇“NotFound”點擊“OK”完成添加test檢查點。
 
3.切換到script view視圖,可以看到插入test文本檢查點函數web_reg_find(),點擊“回放”按鈕進行搜索所要查詢的文本,在replay Log日誌中可以看到Action.c(29): Registered web_reg_find successful for "Text=TestLink 1.8.5 : XXX [test designer]" (count=1)      [MsgId: MMSG-26364]

檢查點-打印驗證web_reg_find()函數:
lr_start_transaction("login");
         web_submit_data("login.php_2",
                   "Action=http://192.168.1.251/testlink/login.php",
                   …
                   LAST);

         web_reg_find("Fail=NotFound", "Search=All", "SaveCount=regcheck", "Text=TestLink 1.8.5 : XXX [test designer]", LAST);
        
         web_url("index.php",
                   ...
                   LAST);
 
         //判斷regcheck是否大於1,如果大於1,檢查結果正確,使用lr_output_message打印,可以供調試時查看
         //如果檢查結果錯誤,使用lr_error_ message打印,可以在control的errors中顯示錯誤
         if(atoi(lr_eval_string("{regcheck}"))>0)
         {
         lr_output_message("成功!");
         }
         else
         {
         lr_error_message("失敗");
         }
         lr_end_transaction("login", LR_AUTO);
 
3.web_image_check()函數
函數作用:在頁面中查找一個具體的圖片。
參數說明:web_image_check("web_image_check","Alt=","Src=",LAST);;
參數解釋:“Alt”和“Src”的值直接取該圖片在網頁源代碼中相應參數的值。
src表示該圖片文件的路徑,alt表示圖片的替代顯示文本(在需要檢查的頁面上右鍵查看源文件,找到該圖片的src和alt值)
函數用法:該函數是在緩存中查找相應的內容,所以要放在查找內容之前。
注意事項:使用該函數時,要在Vuser->Run-Tme Settings中勾選Enable Image and text check,具體操作請看web_find()中的注意事項
 
例如:查找用戶使用testlink圖標-company_logo.png
1.切換到Tree view視圖,選擇action中樹形菜單需要插入文本檢查點的一項,然後點擊鼠標右鍵,選擇插入到該操作執行前Insert before,如圖:
2.在彈出的對話框中選擇“Image Check”,點擊“OK”出現Image Check Properties對話框,在“ALT attr”中填入圖片的替代顯示文本“Company logo”, 在“SRC att”中填入圖片的路徑“gui/themes/default/images/company_logo.png”點擊“OK”完成添加圖片檢查點。

3.切換到script view視圖,可以看到插入image圖片檢查點函數web_image_check()函數,點擊“回放”按鈕進行搜索所要查詢的圖片,在replay Log日誌中可以看到“web_image_check” succeded(1 occurrence(s) found. Alt=“Company logo”,src="gui/themes/default/images/company_logo.png“)
 
三、自動檢查點
有時侯我們需要確保每個請求中都包含一個檢查信息,然而手動添加檢查點函數非常麻煩,可以使用自動檢查點規則,通過建立一個新的規則,可以在回放時對所有的返回內容進行檢查工作。
例如:查找登錄testlink腳本每個頁面是否包含images/company_logo.png這個圖片。
1.打開“Run-time settings/ContentCheck,點擊“New Application”按鈕來添加一個應用,然後在這個應用下添加對應的規則,單擊“New rule”按鈕。在Search for text中填寫需要檢查的內容“images/company_logo.png”,也可以在下面的search by prefix and suffix中填寫需要檢查 邊界,大小寫需要區分可以將Match case選中,設置Fail if 爲Not Found,點擊“OK”按鈕。如圖:運行腳本時,如果有頁面返回的代碼中沒有包含images/company_logo.png時,就能看到以下錯誤:Action.c(10): Error -26370: ContentCheck Rule "Rule_1" in Application "discuz" triggered. Text "images/company_logo.png" not matched [MsgId: MERR-26370]
Action.c(10): web_submit_data("login.php_2") highest severity level was "ERROR", 135 body bytes, 377 header bytes   [MsgId: MMSG-26388]
如果返回的代碼中包含mages/company_logo.png則不會有任何提示出現。通過自動化檢查點,可以輕鬆地對頁面中固定出現的內容進行校驗工作。
 
四、Replay Log常見信息說明
1.  web_find()和web_image_check()函數的日誌信息
(這兩個日誌信息是上一樣的,只是輸出的函數名和參數不同)
1)信息1
Warning -27077: The “vuser_init” section contains web function(s) when the “Simulate a new user on each iteration” Run-Time Setting is ON. This may produce unpredictable results with multiple iterations      [MsgId: MWAR-27077]
出現該信息:說明不能勾選simulate a new user on each iteration
Action.c(5): Verification checks not enabled. web_find is skipped. See the 'Run-time settings/Preferences/Checks'        [MsgId: MMSG-27197]
出現該信息:說明沒有勾選Enable Image and text check
 
2) 信息2
Action.c(5): Error -27195: "web_find" failed. 0 occurrence(s) of "Test Project" found (RightOf="a", LeftOf="b")     [MsgId: MERR-27195]
Action.c(5): web_find highest severity level was "ERROR"   [MsgId: MMSG-26391]
Replay Log常見信息說明:
Action.c(6): Error -27191: "web_image_check" failed (0 occurrence(s) found. Alt="123", Src="123")       [MsgId: MERR-27191]
Action.c(6): web_image_check highest severity level was "ERROR" [MsgId: MMSG-26391]
出現該信息,說明要查找的內容沒有找到。這時依次嘗試以下操作:
1)檢查參數的信息是否寫錯;
2)如果是web_find(),檢查函數的位置是否在要查找內容的後面;
3)如果是web_image_check(),查看該圖片的源代碼,看其是否是這個頁面上的圖片,很可能是圖片選擇錯誤,即所選圖片不屬於該頁面。
 
3)信息3
Action.c(6): "web_image_check" succeeded (1 occurrence(s) found. Alt="Company logo", Src="company_logo.png")  [MsgId: MMSG-27192]
Action.c(6): web_image_check was successful   [MsgId: MMSG-26392]
Action.c(38): "web_find" successful. 1 occurrence(s) of "TestLink 1.8.5 : XXX [test designer]" found (RightOf="", LeftOf="")   [MsgId: MMSG-27196]
Action.c(38): web_find was successful    [MsgId: MMSG-26392]
出現該信息,說明內容、圖片已經查找到
 
2. web_reg_find()函數的日誌信息
1)信息1
Action.c(29): Registered web_reg_find successful for "Text=TestLink 1.8.5 : XXX [test designer]" (count=1)  [MsgId: MMSG-26364]
出現該信息,說明內容已查找到
 
2)信息2
Action.c(11): Error -26366: "Text=ABC" not found for web_reg_find [MsgId: MERR-26366]
Action.c(11): web_submit_data("login.php_2") highest severity level was "ERROR", 135 body bytes, 377 header bytes [MsgId: MMSG-26388]
該信息在replay log頁面是紅色顯示的,說明沒有找到內容,出現此情況嘗試以下兩個操作:
1)參數的信息是否正確;
2)查看該函數是否在查找內容的前面。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章