首先需要明確在性能測試過程中為什麼要進行集合點設置,在LoadRunner測試過程中,其實並不能保證所有的Vuser真的在同一時刻進行操作,這樣就達不到並發測試的目的,故需要使用到集合點技術,集合點的意思是如果在一個操作之前設置了一個集合點,LoadRunner會等待所有的Vuser都準備好要執行該功能時才開始執行,其強調的是所有的Vuser都已準備好了,如果只是部分Vuser準備好了,該功能還是不會被執行。

選擇Scenario→Rendezvous,如圖所示。

接下來會彈出集合點信息對話框,如圖所示。

--->Rendezvous:這裡顯示出腳本中包含的所有集合點。默認情況下這些集合點處於啟用狀態。可以點擊

按鈕,將集合點設置為禁用狀態。

--->Scripts:顯示了場景運行的所有腳本。

--->Vusers:場景運行設置虛擬用戶情況。默認情況下所有的Vuser都會參與到集合點的策略中來,可以手動點擊

按鈕,將一些Vuser設置為不參與到該集合點策略中來。

點擊

按鈕,系統彈出Policy對話框,如圖所示。在該對話框中可以設定集合點執行的策略。

第一項:表示當所有用戶數的X%到達集合點時,開始釋放等待的用戶並繼續執行場景。

第二項:表示當前正在運行用戶數的X%到達集合點時,開始釋放等待的用戶並繼續執行場景。

第三項:表示當X個用戶到達集合點時,開始釋放等待的用戶並繼續執行場景。

其中還有一項Timeout between Vusers,就30秒來說,當第一個用戶到達集合點後,再等待30秒,如果在30秒內到達的用戶數達到指定的數量,就開始繼續執行場景。如果在30秒內還沒有達到指定的用戶數量,就不再等待,開始釋放等待的用戶並繼續執行場景,如圖7-4所示。

從上圖中可以看出,當前面三個虛擬用戶到達集合點後,第四個虛擬用戶在30秒之內並未到達集合點,這樣已經到達的虛擬用戶不會再等後面的虛擬用戶,而是直接釋放虛擬用戶,運行後面的腳本。

以上都是自動控制Vuser釋放的情況,但在實際使用的過程中,也可以手動對Vuser進行釋放,這涉及到手動釋放Vuser技術。在正常情況下會發現在集合點信息對話框中,下面的Release按鈕不可用,如圖所示。以下是手動釋放Vuser的步驟:

1)開始執行場景。

2)在場景執行過程中,選擇Scenario→Rendezvous,打開集合點信息對話框。

3)在場景運行過程中,下面的

按鈕和

按鈕會變成可用狀態,這時可以點擊

按鈕,進行手動釋放Vuser,如圖所示。

在進行並發測試時需要設置集點,同時為了獲取事務的響應時間必須添加開始和結束事務,那麼集合點設置在開始事務代碼後面還是在開始事務之前呢?即兩者之間的關係如何?

第一種情況,集合點設置在開始事務代碼後面,其運行的過程中圖如圖所示。

從上圖中可以看到當虛擬用戶運行到開始事務起點時,事務就開始統計時間,但仔細研究發現,當第一個虛擬用戶到達集合點時,後面的虛擬用戶還沒有到達集合點,這樣第一個虛擬用戶就不得不等其它的虛擬用戶到達集合點後才能接著運行,但虛擬用戶到達集合點之前事務一直在統計時間,並沒有暫停,那麼這個等待的時間其實根本就不是事務的真實時間,真實的事務響應時間應該除去虛擬用戶之間的等待時間。

第二種情況集合點設置在開始事務代碼前面,如圖所示。

從上圖中可以看出,雖然需要等待所有的虛擬用戶都到達集合點後才開始釋放虛擬用戶,但是此時事務並沒有開始計時,只有運行到開始事務代碼時才會開始計時,這樣統計出來的時間值就不包含虛擬用戶因為集合點的原因所浪費的等待時間。

所以綜上描述,一般將集合點設置在開始事務代碼之前。

推薦閱讀:

相關文章