LoadRunner中引數化技術詳解

2021-06-29 05:18:49 字數 4134 閱讀 1866

loadrunner在錄製指令碼的時候,只是忠實的記錄了所有從客戶端傳送到伺服器的資料,而在進行效能測試的時候,為了更接近真實的模擬現實應用,對於某些資訊需要每次提交不同的資料,或者使用多個不同的值進行迴圈輸入。這時,在loadrunner中就可以進行引數化設定,以使用多個不同的值提交應用請求。

【引數化】使用指定資料來源中的值來替換指令碼錄製生成的語句中的引數。

【好處】

l  減少指令碼的大小

l  提供使用不同的值執行指令碼的能力,更加真實的模擬現實應用。

【引數化步驟】

l  用引數替換vuser指令碼中的常量值

l  為引數設定屬性和資料來源

【操作步驟】

1. 在指令碼中選擇需要引數化的內容,單擊滑鼠右鍵,從彈出選單中選擇replace with a parameter。

2. 在彈出的對話方塊中設定引數名稱、引數型別。

3. 單擊對話方塊中的properties按鈕,可以設定引數資料池中的內容以及引數的取值方式。

資料型別:

序號

引數型別

說明1

date/time

在需要輸入日期、時間的地方,可以用date/time來代替,可以選擇日期格式,也可進行定製。

2group name

該型別的引數用執行指令碼的vu所屬組的名稱來替代。但是在vugen中執行時,該值為none。

3loadgenerator name

loadrunner使用該虛擬使用者所在的load generator機器名來代替引數。

4iteration number

loadrunner使用該測試指令碼當前迴圈的次數來代替引數

5random number

隨機數,可以設定產生隨機數的範圍

6unique number

唯一值來代替引數

7vuser id

loadrunner使用該虛擬使用者的id來代替引數值,該id是由controller來控制的,在vugen中執行指令碼時,該值為-1.

8datafile/table

可以在屬性設定中編輯檔案,新增內容,也可以從資料庫中提取資料。

9usedefinedfunction

從dll的簡單函式中獲取資訊替代引數

【注意】對於引數型別為file/table的資料檔案:

l  在引數資料顯示區中,最多隻顯示前100條資料,之後的不顯示,但不影響正常取資料。

l  在記事本中編輯引數資料時,資料檔案一定要以乙個空行結束,否則,最後一行輸入的資料不會被引數所使用。

對於引數型別為file/table的引數的更新方式:

update value on

(更新方法)

select next row

(資料分配方法)

sequential順序

random隨機

unique唯一

each iteration(每次迭代)

對於每次迭代,vuser會從資料表中提取下乙個值

對於每次迭代,vuser會從資料表中提取新的隨機值。

對於每次迭代,vuser會從資料表中提取下乙個唯一值。

each occurrence(每次出現)

引數每次出現時,vuser將從資料表中提取下乙個值,即使在同一迭代中。

引數每次出現時,vuser將從資料表中提取新的隨機值,即使在同一迭代中。

引數每次出現時,vuser將從資料表中提取新的唯一值,即使在同一迭代中。

once(一次)

對於每乙個vuser,第一次迭代中分配的值,將用於所有後續的迭代。

第一次迭代中分配的隨機值將用於該vuser的所有迭代。

第一次迭代中分配的唯一值將用於所有的後續迭代。

舉例:假設存在:

資料:a、b、c

虛擬使用者:vuser1、vuser2、vuser3

指令碼中引數出現三次,指令碼迭代三次

怎樣取下一行資料?

sequential:順序,所有虛擬使用者按照順序讀取資料表

random:隨機,所有虛擬使用者隨機形式讀取資料表

unique:唯一,所有虛擬使用者每次各取一值(不重複)

什麼時候訪問資料表完成資料更新?

each iteration:每次迭代以後

each occurrence:每次出現引數

once:每出現乙個虛擬使用者

例項:

順序 sequential + each iteration

第一次迭代 無論引數任何時候出現 vuser1、vuser2、vuser3 取a

第二次迭代 無論引數任何時候出現 vuser1、vuser2、vuser3 取b

第三次迭代 無論引數任何時候出現vuser1、vuser2、vuser3 取c

sequential + each occurrence

第n次迭代 引數第一次出現 vuser1、vuser2、vuser3 取a

第n次迭代 引數第二次出現 vuser1、vuser2、vuser3 取b

第n次迭代 引數第三次出現 vuser1、vuser2、vuser3 取c

sequential + once

第n次迭代 無論引數任何時候出現 vuser1取a vuser2取b vuser3取c

所有使用者均取a

隨機 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次迭代 第一次遇到該引數 vuser1、vuser2、vuser3在a、b、c中隨機抽取乙個

第n次迭代 第二次遇到該引數 vuser1、vuser2、vuser3重新在a、b、c中隨機抽取乙個

第n次迭代 第三次遇到該引數 vuser1、vuser2、vuser3重新在a、b、c中隨機抽取乙個

在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 執行過程中會返回乙個錯誤。

因此以下例子在資料表中加入資料d、e、f、g、h、i。

unique + each iteration

第一次迭代 無論引數出現多少次 vuser1取a vuser2取d vuser3取g

第二次迭代 無論引數出現多少次 vuser1取b vuser2取e vuser3取h

第三次迭代 無論引數出現多少次 vuser1取c vuser2取f vuser3取i

unique + each occurrence

第一次迭代 第一次出現該引數 vuser1取a vuser2取d vuser3取g

第一次迭代 第二次出現該引數 vuser1取b vuser2取e vuser3取h

第一次迭代 第三次出現該引數 vuser1取c vuser2取f vuser3取i

unique + once

無論進行多少次迭代 無論引數任何時候出現 vuser1取a vuser2取b vuser3取c

資料d、e、f、g、h、i不取

**:

LoadRunner 引數化詳解

loadrunner,是一種 系統行為和效能的負載測試工具。通過以模擬上千萬使用者實施併發負載及實時效能監測的方式來確認和查詢問題,loadrunner能夠對整個企業架構進行測試。通過使用 loadrunner,企業能最大限度地縮短測試時間,優化效能和加速應用系統的發布週期。loadrunner是一...

細說LoadRunner引數化

前言 為什麼這裡說是細說loadrunner引數化,在書和網上到處都能找到關於loadrunner引數化的內容,但是細心的讀者不能難發現,雖然現在很多資料都有關於引數化的內容,但寫的都不夠詳細,對於初學者來說是一件很困難的事,而引數化又是編輯指令碼最重要的一部分之一,沒有學好引數化就不能算是一名合格...

Loadrunner中引數化取值方式分析

loadrunner中引數化取值依賴兩個維度 1.取值順序分為 順序 隨機 唯一 select next row sequential random,unique 2.更新值時分為 每次迭代 每次更新 僅一次 update value on each iteration each occurence...