軟件測試工具Loadrunner中參數的設置

發表于:2010-04-09來源:作者:點擊數: 標簽:軟件測試loadrunnerLoadrunnerloadRunnerLoadRunner
軟件測試工具Loadrunner中參數的設置 做負載或者 壓力測試 時,很多人選擇使用了Loadrunner測試工具。該工具的基本流程是先將用戶的實際操作錄制成腳本,然后產生數千個虛擬用戶運行腳本(虛擬用戶可以分布在局域網中不同的PC機上),最后生成相關的報告以及

軟件測試工具Loadrunner中參數的設置

做負載或者壓力測試時,很多人選擇使用了Loadrunner測試工具。該工具的基本流程是先將用戶的實際操作錄制成腳本,然后產生數千個虛擬用戶運行腳本(虛擬用戶可以分布在局域網中不同的PC機上),最后生成相關的報告以及分析圖。但是在錄制腳本的過程中會遇到很多實際的問題,比如不同的用戶有不同的使用數據,這就牽涉到參數的設置問題。本文就Loadrunner中參數的設置進行說明,希望對大家有所幫助。
在錄制程序運行的過程中,VuGen(腳本生成器) 自動生成了包含錄制過程中實際用到的數值的腳本。如果你企圖在錄制的腳本中使用不同的數值執行腳本的活動(如查詢、提交等等),那么你必須用參數值取代錄制的數值。這個過程稱為參數化腳本。
本文主要包括如下內容:理解參數的局限性、建立參數、定義參數的屬性、理解參數的類型、為局部數據類型設置參數的屬性、為數據文件設置參數的屬性、從已經存在的數據庫中引入數據。
除了GUI,以下的內容適合于各種類型的用戶腳本。

一、關于參數的定義
在你錄制程序運行的過程中,腳本生成器自動生成由函數組成的用戶腳本。函數中參數的值就是在錄制過程中輸入的實際值。
例如,你錄制了一個Web應用程序的腳本。腳本生成器生成了一個聲明,該聲明搜索名稱為“UNIX”的圖書的數據庫。當你用多個虛擬用戶和迭代回放腳本時,也許你不想重復使用相同的值“UNIX”。那么,你就可以用參數來取代這個常量。結果就是你可以用指定的數據源的數值來取代參數值。數據源可以是一個文件,也可以是內部產生的變量。
用參數表示用戶的腳本有兩個優點:① 可以使腳本的長度變短。② 可以使用不同的數值來測試你的腳本。例如,如果你企圖搜索不同名稱的圖書,你僅僅需要寫提交函數一次。在回放的過程中,你可以使用不同的參數值,而不只搜索一個特定名稱的值。
參數化包含以下兩項任務:① 在腳本中用參數取代常量值。② 設置參數的屬性以及數據源。
參數化僅可以用于一個函數中的參量。你不能用參數表示非函數參數的字符串。另外,不是所有的函數都可以參數化的。

二、參數的創建
可以指定名稱和類型來創建參數。不存在對腳本中參數個數的限制。在Web程序的用戶腳本中,你可以使用如下過程在基于文本的腳本視圖中創建參數?;蛘?,也可以在基于圖標的樹形視圖中創建參數。
在基于文本的腳本視圖中創建一個參數:
1、 將光標定位在要參數化的字符上,點擊右鍵。打開彈出菜單。
2、 在彈出菜單中,選擇“Replace with a Parameter”。選擇或者創建參數的對話框彈出。
3、 在“Parameter name”中輸入參數的名稱,或者選擇一個在參數列表中已經存在的參數。
4、 在“Parameter type”下拉列表中選擇參數類型。
5、 點擊“OK”,關閉該對話框。腳本生成器便會用參數中的值來取代腳本中被參數化的字符,參數用一對“{}”括住。
注意:在參數化CORBA或者General-Java 用戶腳本的時候,必須參數化整個字符串,而不是其中的部分。另外注意:除了Web或者WAP,缺省的參數括號對于任何腳本都是 “{}”。你可以在“General Options”對話框中的“Parameterization”標簽(Tools>General Options)中定義參數括號種類。
6、 用同樣的參數替換字符的其余情況,選中參數,點擊右鍵,彈出菜單。從彈出的菜單中,選擇“Replace More Oclearcase/" target="_blank" >ccurrences”。搜索和替換對話框彈出?!癋ind What”中顯示了你企圖替換的值?!癛eplace With”中顯示了括號中參數的名稱。選擇適當的檢驗框來匹配整個字符或者大小寫。如果要搜索規則的表達式(.,!,?等等),選中“Regular Expression”檢驗框,然后點擊“Replace”或者“Replace All”。
注意:小心使用“Replace All”,尤其替換數字字符串的時候。腳本生成器將會替換字符出現的所有情況。
7、 如果想用以前定義過的參數來替換常量字符串的話,選中該字符串,點擊右鍵,然后選擇“Use Existing Parameter”,子菜單“Use Existing Parameters”彈出。從子菜單“Use Existing Parameters”選擇參數,或者用“Select from Parameter List”來打開參數列表對話框。
注意:如果用以前定義過的參數來替換常量字符串的話,那么,使用“Parameter List”非常方便。同時,還可以查看和修改該參數的屬性。
8、 對于已經用參數替換過的地方,如果想取回原來的值,那么,就在參數上點擊右鍵,然后選擇“Restore Original value”。
在Web用戶腳本的樹形視圖中創建參數:
1、將光標定位在企圖參數化的地方,點擊右鍵,從彈出的菜單中選擇“Properties”。則相關的屬性對話框打開。
2、點擊在要參數化的參量的旁邊的“ABC”形狀的圖標?!癝elect or Create Parameter”對話框打開。
3、在“Parameter name”中輸入參數的名稱,或者從列表中選擇一個已經存在的參數。
4、在“Parameter type”中輸入參數的類型。
5、點擊“OK”關閉該對話框。用戶腳本生成器會用參數來替換最初的字符串常量,并用一個表格形狀的圖標替換“ABC”形狀的圖標。
6、要恢復參數化以前的值,點擊圖標,然后從彈出的菜單中選擇“Undo Parameter”,則以前的值便會重現。

三、定義參數的屬性
創建參數完成后,就可以定義其屬性了。參數的屬性定義就是定義在腳本執行過程中,參數使用的數據源。在Web用戶腳本中,你既可以在基于文本的腳本視圖中定義參數屬性,也可以在基于圖標的樹形視圖中定義參數屬性。下面的過程將教你如何在基于本文的腳本視圖中定義參數屬性。
在基于文本的腳本視圖中定義參數屬性步驟:
1、 在參數上點擊右鍵,有菜單彈出。
2、 在彈出的菜單中,選擇“Parameter Properties”。參數屬性對話框打開,顯示和當前參數類型相關的屬性。
3、 輸入參數的屬性值。
4、 點擊“Close”關閉參數屬性對話框。
在Web用戶腳本的樹形視圖中定義參數的屬性:
1、 將關標定位在參數上,然后點擊右鍵,選擇“Properties”。屬性對話框打開。
2、 點擊要定義屬性的參數旁邊的表格形狀按鈕,點擊右鍵,選擇“Parameter Properties”。參數屬性對話框打開,和參數類型相關的屬性顯示出來。
3、 輸入參數的屬性。
4、 點擊“Close”關閉參數屬性對話框。
使用參數列表:  使用參數列表可以在任意時刻查看所有的參數,創建新的參數、刪除參數,或者修改已經存在參數的屬性。
1、 點擊參數列表按鈕或者用“Vuser>Parameter List”。參數列表對話框打開。
2、 要創建新的參數,點擊“New”按鈕。新的參數則被添加在參數樹中,該參數有一個臨時的名字,你可以給它重新命名,然后回車。設置參數的類型和屬性,點擊“OK”,關閉參數列表對話框。
注意:不要將一個參數命名為“unique”,因為這個名稱是用戶腳本生成器本身的。用戶腳本生成器創建新的參數,但是不會自動用該參數在腳本中替換任意選中的字符串。
3、 要刪除已有的參數,那么,要先從參數樹中選擇該參數,點擊“Delete”,然后確認你的行為即可。
4、 要修改已有參數,那么,要先從參數樹中選擇該參數,然后編輯參數的類型和屬性。

 

四、理解參數的類型  在你定義參數屬性的時候,要指定參數值的數據源。你可以指定下列數據源類型的任何一種:
Internal Data―― 虛擬用戶內部產生的數據。
Data Files ――存在于文件中的數據??赡苁且汛嬖诘奈募蛘呤怯媚_本生成器新創建的。
User-Defined Functions―― 調用外部DLL函數生成的數據  Internal Data包括以下幾種:
1、 Date/Time  Date/Time用當前的日期/時間替換參數。要指定一個Date/Time格式,你可以從菜單列表中選擇格式,或者指定你自己的格式。這個格式應該和你腳本中錄制的Date/Time格式保持一致。
2、 Group Name  Group Name 用虛擬用戶組名稱替換參數。在創建scenario的時候,你可以指定虛擬用戶組的名稱。當從用戶腳本生成器運行腳本的時候,虛擬用戶組名稱總是None。
3、 Load Generator Name  Load Generator Name用腳本負載生成器的名稱替換參數。負載生成器是虛擬用戶在運行的計算機。
4. Iteration Number  Iteration Number用當前的迭代數目替換參數。
5、 Random Number  Random Number用一個隨機數替換參數。通過指定最大值和最小值來設置隨機數的范圍。
6、 Unique Number  Unique Number用一個唯一的數字來替換參數。你可以指定一個起始數字和一個塊的大小。
7、 Vuser ID  Vuser ID用分配給虛擬用戶的ID替換參數,ID是由Loadrunner的控制器在scenario運行時生成的。如果你從腳本生成器運行腳本的話,虛擬用戶的ID總是-1。

五、數據文件  數據文件包含著腳本執行過程中虛擬用戶訪問的數據。局部和全局文件中都可以存儲數據??梢灾付ìF有的ASCII文件、用腳本生成器創建一個新的文件或者引入一個數據庫。在參數有很多已知值的時候數據文件非常有用。數據文件中的數據是以表的形式存儲的。一個文件中可以包含很多參數值。每一列包含一個參數的數據。列之間用分隔符隔開,比如說,用逗號?! 祿募O置參數屬性  如果使用文件作為參數的數據源,必須指定以下內容:文件的名稱和位置、包含數據的列、文件格式,包括列的分隔符、更新方法?! ∪绻麉档念愋褪恰癋ile”,打開參數屬性(Parameter Properties)對話框,設置文件屬性如下:
1、 在“File path”中輸入文件的位置,或者點擊“Browse”指定一個已有文件的位置。缺省情況下,所有新的數據文件名都是“parameter_name.dat”,注意,已有的數據文件的后綴必須是.dat。


2、 點擊“Edit”。記事本打開,里面第一行是參數的名稱,第二行是參數的初始值。使用諸如逗號之類的分隔符將列隔開。對于每一新的表行開始一行新的數據?! ∽⒁猓涸跊]有啟動記事本的情況下如果想添加列,就在參數屬性對話框中點擊“Add Col”,那么“Add new column”對話框就會彈出。輸入新列的名稱,點擊“OK”。腳本生成器就會添加該列到表中,并顯示該列的初始值。


3、 在“Select Column”部分,指明包含當前參數數據的列。你可以指定列名或者列號。列號是包含你所需要數據的列的索引。列名顯示在每列的第一行(row 0)。


4、 在“Column delimiter”中輸入列分隔符,你可以指定逗號、空格符等等。


5、 在“First data line”中,在腳本執行的時候選擇第一行數據使用。列標題是第0行。若從列標題后面的第一行開始的話,那就在“First data line”中輸入1。如果沒有列標題,就輸入0。


6、 在“Select next row”中輸入更新方法,以說明虛擬用戶在腳本執行的過程中如何選擇表中的數據。方法可以是:連續的、隨機的、唯一的、或者與其它參數表的相同行。
6.1、 順序(Sequential):該方法順序地給虛擬用戶分配參數值。如果正在運行的虛擬用戶訪問數據表的時候,它會取到下一行中可用的數據。
6.2、 隨機(Random):該方法在每次迭代的時候會從數據表中取隨機數
6.3、 使用種子取隨機順序(Use Random Sequence with Seed):如果從Loadrunner的控制器來運行scenario,你可以指定一個種子數值用于隨機順序。每一個種子數值在測試執行的時候代表了一個隨機數的順序。無論你何時使用這個種子數值,在scenario中同樣的數據順序就被分配給虛擬用戶。如果在測試執行的時候發現了一個問題并且企圖使用同樣的隨機數序列來重復測試,那么,你就可以啟動這個功能(可選項)。
6.4、 唯一(Unique):Unique方法分配一個唯一的有順序的值給每個虛擬用戶的參數。
6.5 、與以前定義的參數取同一行(Same Line As ):該方法從和以前定義過的參數中的同樣的一行分配數據。你必須指定包含有該數據的列。在下拉列表中會出現定義過的所有參數列表。注意:至少其中的一個參數必須是Sequential、Random或者Unique。
如果數據表中有三列,三個參數定義在列表中:id1,name1和title1,如下:。
ID Name Title
132 Kim Manager
187 Cassie Engineer
189 Jane VP
對于參數id1,你可以指示虛擬用戶使用Random方法,而為參數name1和title1就可以指定方法“Same Line as id1”。所以,一旦ID“132”被使用,那么,姓名(Name)“Kim”和職位(Title)“Manager”同時被使用。


7、Updta value on數據的更新方法
7.1、Each iteration――每次反復都要取新值。
7.2、Each occurrence――只要發現該參數就要重新取值。
7.3、Once――在所有的反復中都使用同一個值


8、When out of values超出范圍:(選擇數據為unique時才可用到)
8.1、Abort Vuser――中止
8.2、Continue in a cyclic manner――繼續循環取值
8.3、Continue with last value――取最后一個值


9、Allocate Vuser values in the Controller在控制器中分配值:(選擇數據為unique時才可用到)

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97