loadrunner集合點設置

    集合點的意思時等到特定的用戶數後再一起執行某個操作,比如一起保存,一起提交(我們通常意義上的併發數並不是指一起提交或者一起保存),一般情況下使用不到集合點,不過,訂票系統或者促銷類需要用到,比如說某個促銷品的促銷時間在8點到8點30,這樣的話,就可能出現在8點時很多人一起提交的場景

集合點函數可以幫助我們生成有效可控的併發操作。雖然在Controller中多用戶負載的Vuser是一起開始運行腳本的,但是由於計算機的串行處理機制,腳本的運行隨着時間的推移,並不能完全達到同步。這個時候需要手工的方式讓用戶在同一時間點上進行操作來測試系統併發處理的能力,而集合點函數就能實現這個功能。集合點只需要在腳本中插入lr_rendezvous()函數即可。打開Insert菜單下的Rendezvous選項。

在彈出的對話框中輸入集合點名稱sell,確定後即可得到對應的腳本:

  1. lr_rendezvous("sell"); 

引號內的就是集合點名稱,當腳本在多用戶運行的情況下,每次運行到這個函數都會查看一下集合點的策略來決定是等待還是繼續運行。

集合點的設置內容存放在場景的設置中,當腳本中有集合點函數時,場景中的集合點設置功能就可以訪問。

打開場景菜單下的集合點後,可以爲集合點進行設置,包括哪些用戶使用該集合點、集合點是否有效等,如圖3.169所示。

如果腳本中沒有集合點,那麼場景中的Scenario/Rendezvous集合點功能將會是灰色顯示。

集合點策略用來設置虛擬用戶集合的方式,打開Policy對話框。

集合點提供了以下3種策略:

1.當百分之多少的用戶到達集合點時腳本繼續。

2.當百分之多少的運行用戶到達集合點時腳本繼續。

場景中的集合點設置窗口
場景中的集合點策略

3.多少個用戶到達集合點時腳本繼續。

這3個策略的區別在於:假設腳本由100個用戶來運行,但100個用戶並不是一開始就共同運行的。假設每隔1分鐘添加10個用戶,也就是說10分鐘後系統纔有100個在線用戶。這裏100就是指系統訪問的所有用戶數,而不同時間的在線用戶數是不同的。設置的集合點策略百分比均爲100%。

在場景運行時,當Vuser腳本運行到集合點函數時,該虛擬用戶會進入集合點狀態直到集合點策略滿足後才釋放。

策略1是指當全部用戶都運行到了集合點函數才釋放集合,讓這100個用戶併發運行後面的腳本。

策略2是指當前時間如果只有10個用戶在線,那麼只需要這10個用戶都運行到了集合點函數就釋放集合,讓這10個用戶併發運行後面的腳本。

策略3就比較好理解了,當到達集合點的用戶數達到自己設置的數量後就釋放等待,併發運行後面的腳本。

可以在多個腳本上設置相同的集合點名稱來實現多個腳本同時併發的效果。

集合點超時

在腳本運行時,每個虛擬用戶到達集合點時都會去檢查一下集合點的策略設置,如果不滿足,那麼就在集合狀態等待,直到集合點策略滿足後,才運行下一步操作。但是可能存在前一個虛擬用戶和後一個虛擬用戶達到集合點的時間間隔非常長的情況,所以需要指定一個超時的時間,如果超過這個時間就不等待遲到的虛擬用戶了。

超時時間是指虛擬用戶之間的時間差,當出現兩個虛擬用戶到達集合點的時間差超過設定的超時時間時,所有在集合點處於等待狀態中的用戶將全部釋放。

集合點和事務

集合點應該放在事務外,如果事務內存在集合點,那麼虛擬用戶在集合點等待的過程也會被算入事務時間,導致早進入集合點的用戶的響應時間有誤。

常見的田徑比賽就是這樣,大家先集合在同一起跑線上,鳴槍後開始計時,達到終點再計時,這樣就能得到準確的事務時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章