LoadRunner Controller中多使用者併發操作是怎樣進行的?

brightking716發表於2010-12-24

假設存在:
資料:ABC
虛擬使用者:Vuser1Vuser2Vuser3
指令碼中引數出現三次,指令碼迭代三次

Note: Controller裡面的Runtime setting 的設定是優先於 VuGen裡面的Runtime setting.

怎樣取下一行資料?
Sequential
:順序,所有虛擬使用者按照順序讀取資料表
Random
:隨機,所有虛擬使用者隨機形式讀取資料表
Unique
:唯一,所有虛擬使用者每次各取一值(不重複)

什麼時候訪問資料表完成資料更新?
Each iteration
:每次迭代以後
Each occurrence
:每次出現引數
Once
:每出現一個虛擬使用者
[@more@]

例項:
順序
Sequential + Each iteration
第一次迭代 無論引數任何時候出現 Vuser1Vuser2Vuser3 A
第二次迭代 無論引數任何時候出現 Vuser1Vuser2Vuser3 B
第三次迭代 無論引數任何時候出現Vuser1Vuser2Vuser3 C

Sequential + Each occurrence
N次迭代 引數第一次出現 Vuser1Vuser2Vuser3 A
N次迭代 引數第二次出現 Vuser1Vuser2Vuser3 B
N次迭代 引數第三次出現 Vuser1Vuser2Vuser3 C

Sequential + Once
N次迭代 無論引數任何時候出現 Vuser1A Vuser2B Vuser3C

隨機
Random + Each iteration
N次迭代 無論遇到該引數多少次 Vuser1都只取A,或者B,又或者C,本次迭代不再更新
N次迭代 無論遇到該引數多少次 Vuser2都只取A,或者B,又或者C,本次迭代不再更新
N次迭代 無論遇到該引數多少次 Vuser3都只取A,或者B,又或者C,本次迭代不再更新
N+1次迭代,每個Vuser重新隨機抽取資料

Random + Each occurrence
N次迭代 第一次遇到該引數 Vuser1Vuser2Vuser3ABC中隨機抽取一個
N次迭代 第二次遇到該引數 Vuser1Vuser2Vuser3重新在ABC中隨機抽取一個
N次迭代 第三次遇到該引數 Vuser1Vuser2Vuser3重新在ABC中隨機抽取一個
N+1次迭代,每個Vuser繼續保持每遇到一次引數就重新抽取一次資料

Random + Once
N次迭代 無論遇到該引數多少次 Vuser1都只取A,或者B,又或者C
N次迭代 無論遇到該引數多少次 Vuser2都只取A,或者B,又或者C
N次迭代 無論遇到該引數多少次 Vuser3都只取A,或者B,又或者C
N+1次迭代,每個Vuser不會重新抽取資料

唯一
注意:使用該Unique型別必須注意資料表有足夠多的數。
比如Controller 中設定20 個虛擬使用者進行5 次迴圈,那麼編號為1 的虛擬使用者取前5個數,編號為2 的虛擬使用者取6-10 的數,依次類推,這樣資料表中至少要有100個資料,否則Controller 執行過程中會返回一個錯誤。
因此以下例子在資料表中加入資料DEFGHI

Unique + Each iteration
第一次迭代 無論引數出現多少次 Vuser1A Vuser2D Vuser3G
第二次迭代 無論引數出現多少次 Vuser1B Vuser2E Vuser3H
第三次迭代 無論引數出現多少次 Vuser1C Vuser2F Vuser3I

Unique + Each occurrence
第一次迭代 第一次出現該引數 Vuser1A Vuser2D Vuser3G
第一次迭代 第二次出現該引數 Vuser1B Vuser2E Vuser3H
第一次迭代 第三次出現該引數 Vuser1C Vuser2F Vuser3I

Unique + Once
無論進行多少次迭代 無論引數任何時候出現 Vuser1A Vuser2B Vuser3C
資料DEFGHI不取

Reference:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12472709/viewspace-1043595/,如需轉載,請註明出處,否則將追究法律責任。

相關文章