天天看點

LoadRunner參數化詳解

 距離上次使用loadrunner 已經有一年多的時間了。初做測試時在項目中用過,後面項目中用不到,自己把重點放在了工具之外的東西上,認為性能測試不僅僅是會用工具,最近又想有一把好的利器畢竟可以幫助自己更好的完成性能測試工作。這算是一個認知的過程吧!

  在次安裝打開loadrunner時,發現雖然自己的思想還在,但已經非常生疏了,好多設定都找不到了具體的位置。下面說參數化參數化是性能測試中時最常用的一種技巧吧!這裡需要說明的是,不是隻有loadrunner才可以設定參數化,我以前所使用的jmeter同樣也有類似的設定。

  我們知道性能測試工具是模拟多個使用者對系統的性能進行驗證(這種說法不完全正确),有些系統允許多個完全相同的使用者同時對完全相同的資料做完全相同的操作,有些則不允許。比如,郵箱一般允許同一個賬号在多處登陸。而我們的qq賬号肯定是不允許的。再比如,你注冊某個系統時,使用者名是不能有重複。但密碼卻可以。是以,這麼多個情況都要用到參數化技巧。

  我們這裡通過loadurnner錄制一個139郵箱的登陸。下面是截取的一小段代碼

下面看一下如何通過loadrunner對使用者名密碼參數化。标紅的内容就是登陸的使用者名和密碼。

 參數化的方法                                                                           

選中要參數化的内容。

方法一,右鍵---【replace with a new parameter】

方法二,菜單【insert】----【new parameter…】 

LoadRunner參數化詳解
LoadRunner參數化詳解

parameter properties (參數屬性對話框)----我們的參數化設定就通過這個對話框完成。

參數化的方式:

其實參數化得方式有很多種,這裡簡述幾種比較常見人方式。其實方式略有不同,但其結果都是将資料添加進來。

1、 編輯資料

點選create table 會出現表格,在表格,再次點選edit with notepad ,然後會打開一個記事本,我們可以對記事本進行添加資料 

LoadRunner參數化詳解

2、 添加dat資料檔案

 點選file輸入框後面的“browse..”按鈕,找到本地的txt資料檔案,進行添加就可以了。

LoadRunner參數化詳解

需要注意的是,檔案裡面的資料不要亂寫,每條資料一行,不然會讀取有誤。

3、 資料庫添加資料

在很多情況下,我添加的資料不是十條二十條,也不是一百兩百,如果還通過上面的兩種方式添加,我想會是一件非常糾結的事情。

是以我們可以通過資料庫将資料導入。你是否疑慮資料庫的資料怎麼弄,資料庫的資料生成非常簡單,可以寫一段簡單的代碼生成,也可以通過資料庫資料生成工具

來完成

點選date wizard 打開連接配接資料庫向導。 

LoadRunner參數化詳解

這裡先告訴你有這種方式,後面再介紹具體操作。^_^

4、 其他類型設定

如果我們要參數化的不是一個檔案,比如是特定的日期時間,可以從parameter type 清單中進行選擇

LoadRunner參數化詳解
LoadRunner參數化詳解

這裡可以設定日期時間格式,循環疊代方式,不過除了file類型外,其他用的不多。其他類型用法我也不是十分了解。

參數化之間的關聯                                                                 

  前面我們已經對使用者名進行了參數化,或對密碼進行了參數化,這樣是不是腳本就能正常跑了,不好說。因為使用者名和密碼不是一一對應關系,每次運作腳本時取的使用者名和密碼沒有對應上的話肯定就會出問題。

假設,我們已經對使用者名已經進行了參數化,參數名為【username】,下面設定密碼參數化與使用者名關聯。

LoadRunner參數化詳解

 點選“properites…”會打開編輯使用者名參數化視窗。file清單框中,剛才儲存使用者名資訊的檔案"username.dat"。

LoadRunner參數化詳解

點選“add column…”,添加新的一列資訊,用于放置密碼。

LoadRunner參數化詳解

點選“edit with notepad”再次編輯參數化資料檔案,使使用者名密碼建立一一對應關系。

LoadRunner參數化詳解

完成之後,我們已經成功對使用者名和密碼進行了參數化,并且讓使用者名和密碼形成了對應關系。

資料配置設定與更新方式                                                                       

  腳本設定完參數化,腳本運作的每一遍所取的參數化的值都不一樣,那麼這個值按照個什麼情況來取呢?會有很多種方式

select next row【選擇下一行】:

LoadRunner參數化詳解

順序(sequential):按照參數化的資料順序,一個一個的來取。

随機(random):參數化中的資料,每次随機的從中抽取資料。

唯一(unique):為每個虛拟使用者配置設定一條唯一的資料

update value on【更新時的值】: 

LoadRunner參數化詳解

每次疊代(each iteration) :每次疊代時取新的值,假如50個使用者都取第一條資料,稱為一次疊代;完了50個使用者都取第二條資料,後面以此類推。

每次出現(each occurrence):每次參數時取新的值,這裡強調前後兩次取值不能相同。

隻取一次(once) :參數化中的資料,一條資料隻能被抽取一次。(如果資料輪次完,腳本還在運作将會報錯)

上面兩個選項都有三種情況,如果将他們進行組合,将産生九種取值方式。

select next row

【選擇下一行】

update value on

【更新時的值】

replay result

【結果】

順序(sequential)

每次疊代(each iteration)

結果:分别将15條資料寫入資料表中

功能說明:每疊代一次取一行值,從第一行開始取。當所有的值取完後,再從第一行開始取

如:如果參數化檔案中有15條資料,而疊代設定為16次,那執行結果中,參數化檔案第一行的資料有兩條

每次出現(each occurrence)

隻取一次(once)

結果:表中寫入15條一模一樣的資料。

功能說明:每次疊代都取參數化檔案中第一行的資料。

随機(random)

結果:表中寫入15條資料,但可能有重複資料出現

功能說明:每次從參數化檔案中随機選擇一行資料進行指派

結果:表中寫入15條相同資料

功能說明:第一次疊代時随機從參數化檔案中取一行資料,後面每次疊代都用第一次疊代的資料。

唯一(unique)

自動配置設定塊大小

功能說明:第一次疊代取參數化檔案中的第一條資料,第二次疊代取第二條資料,以此類推。

注:如果設定疊代次數為16次。結果:在執行第16次疊代時會抛異常,異常日志可在loadrunner的回放日志(replaylog)中看到。

步長為1

注:如果設定疊代次數為16次,而參數化檔案中隻有15條資料,明顯資料不夠。此時可以設定“when out of values”屬性來判斷當資料不夠時的處理方式

abort vuser:中斷虛拟使用者

countinue in a cylic manage:循環取參數化檔案中的值,即:當參數化檔案中的值取完後又從參數化檔案的第一行開始取值。

countinue with last value:繼續用最後一條資料

功能說明:每次都取參數檔案中的第一條資料進行指派

ps:關于調用資料庫實作參數化的方式,放在後一篇細說。被一個蛋疼的問題和這篇文章折騰一天。