出現對話框腳本中注釋的代碼如下:
5.2.4 參數化輸入
如果用戶在錄制腳本過程中,填寫提交了一些數據,比如要增加數據庫記錄。這些操作都被記錄到了腳本中。當多個虛擬用戶運行腳本時,都會提交相同的記錄,這樣不符合實際的運行情況,而且有可能引起沖突。為了更加真實的模擬實際環境,需要各種各樣的輸入。 參數化輸入是一種不錯的方法。 用參數表示用戶的腳本有兩個優點: ① 可以使腳本的長度變短。 ② 可以使用不同的數值來測試你的腳本。例如,如果你企圖搜索不同名稱的圖書,你 僅僅需要寫提交函數一次。在回放的過程中,你可以使用不同的參數值,而不只搜索一 個特定名稱的值。 參數化包含以下兩項任務: ① 在腳本中用參數取代常量值。 ② 設置參數的屬性以及數據源。 參數化僅可以用于一個函數中的參量。你不能用參數表示非函數參數的字符串。 另外,不是所有的函數都可以參數化的。 參數化輸入的講解,我們采用一個例子的方式來進行。 假如有以上的一個提交數據的窗體,我們想參數化高亮顯示的部分(31)。操作方法很 簡單,我們只要選中“31”,然后點鼠標右鍵 選擇“Replace with a parameter. ”,出現以下窗口: 下面我們重點介紹一下參數的類型。 n DateTime:很簡單,在需要輸入日期/時間的地方,可以用DateTime 類型來替代。其屬性設置也很簡單,選擇一種格式即可。當然也可以定制格式。 n Group Name:暫時不知道何處能用到,但設置比較簡單。在實際運行中,LoadRunner使用該虛擬用戶所在的Vuser Group 來代替。但是在VuGen 中運行時,Group Name將會是None。 n Load Generator Name:在實際運行中,LoadRunner 使用該虛擬用戶所在Load Generator 的機器名來代替。 n Iteration Number:在實際運行中,LoadRunner 使用該測試腳本當前循環的次數來 代替。 n Random Number:隨機數。很簡單。在屬性設置中可以設置產生隨機數的范圍 n Unique Number:唯一的數。在屬性設置中可以設置第一個數以及遞增的數的大小。 注意:使用該參數類型必須注意可以接受的最大數。例如:某個文本框能接受的 最大數為99。當使用該參數類型時,設置第一個數為1,遞增的數為1,但100 個 虛擬用戶同時運行時,第100 個虛擬用戶輸入的將是100,這樣腳本運行將會出錯。 注意:這里說的遞增意思是各個用戶取第一個值的遞增數,每個用戶相鄰的兩次循 環之間的差值為1。舉例說明:假如起始數為1,遞增為5,那么第一個用戶第一 次循環取值1,第二次循環取值2;第二個用戶第一次循環取值為6,第二次為7; 依次類推。 n Vuser ID:設置比較簡單。在實際運行中,LoadRunner 使用該虛擬用戶的ID 來代替,該ID 是由Controller 來控制的。但是在VuGen 中運行時,Vuser ID 將會是 –1。n File:需要在屬性設置中編輯文件,添加內容,也可以從現成的數據庫中取數據(下 面我們將會介紹) n User Defined Function:從用戶開發的dll 文件提取數據。就目前我認為,這種方式沒有必要。VuGen 支持C 語言的語法,在VuGen 中重新編寫類似的函數應該不難。 (一家之言,僅供參考) 上面的例子中,我們取隨機數即可。 點“Properties… ..”按鈕,進行屬性設置窗口 添入隨機數的取值范圍為(1-50),選擇一種數據格式。在Update Value on 中有以下幾個選項: n Each Oclearcase/" target="_blank" >ccurrence:在運行時,每遇到一次該參數,便會取一個新的值 n Each iteration:運行時,在每一次循環中都取相同的值 n Once:運行時,在每次循環中,該參數只取一次值 這里我們用的是隨機數,選擇Each Occurrence 非常合適。 下面我們再舉一個file 的例子。我們要用數據庫中的用戶名來參數化登陸用戶名。 選擇要參數化的數據,右鍵,選擇“Replace with a parameter.”,出現以下窗口: 點“Properties… ..”,按鈕,出現以下窗口 注意:參數的文件名不要使用con.dat、pm.dat 或者lpt*.dat 等系統裝置名 下面我們將會連接數據庫,從數據表中選擇用戶名。點“Data Wizard”按鈕 使用第2 項,下一步 添入連接字符串和SQL 語句后,點Finish 按鈕,出現查詢結果。 提醒:在參數數據顯示區,最多只能看到100 行,如果數據超過100 行,只能點“Edit” 按鈕,進入記事本看。 “Select next row ”有以下幾種選擇: n Sequential:按照順序一行行的讀取。每一個虛擬用戶都會按照相同的順序讀取 n Random:在每次循環里隨機的讀取一個,但是在循環中一直保持不變 n Unique :唯一的數。注意:使用該類型必須注意數據表有足夠多的數。比如 Controller 中設定20 個虛擬用戶進行5 次循環,那么編號為1 的虛擬用戶取前5 個數,編號為2 的虛擬用戶取6-10 的數,依次類推,這樣數據表中至少要有100 個數據,否則Controller 運行過程中會返回一個錯誤。 n Same Line As 某個參數(比如Name):和前面定義的參數Name 取同行的記錄。 通常用在有關聯性的數據上面。 我們這里取值Sequential 即可。 Advance row each iteration 選中即可,表示每一次循環都往前走一行。 手工輸入數據比較簡單,這里就不再單獨介紹了。原文轉自:http://www.anti-gravitydesign.com