1. loadrunner如何使用
1、使用LoadRunner 完成測試一般分為四個步驟:
2、Vvitrual User Generator 創建腳本
創建腳本,選擇協議
錄制腳本
編輯腳本
檢查修改腳本是否有誤
3、中央控制器(Controller)來調度虛擬用戶
創建Scenario,選擇腳本
設置機器虛擬用戶數
設置Schele
如果模擬多機測試,設置Ip Spoofer
4、運行腳本
分析scenario
分析測試結果
5、安裝LoadRunner 中文版
LoadRunner 分為Windows 版本和Unix 版本。如果我們的所有測試環境基於Windows
平台, 那麼我們只要安裝Windows 版本即可。本章講解的安裝過程就是LoadRunner7.8中文的Windows 版本的安裝。
6、使用LoadRunner進行負載/壓力測試
7、錄制基本的用戶腳本
創建用戶腳本需要用到VuGen。提示: 運行VuGen 最好在1024*768 的解析度下, 否則有些工具欄會看不到。
啟動Visual User Generator 後, 通過菜單新建一個用戶腳本, 選擇系統通訊的協議。
這里我們需要測試的是Web 應用,同時考慮到後台SQL資料庫所以我們需要選擇Web(HTTP/HTML)協議+SQL SERVER協議,確定後, 進入主窗體。通過菜單來啟動錄制腳本的命令。
8、在URL 中添入要測試的Web 站點地址..。
●測試http://lms.ah.sp.com.cn/lms-lmm/loginForm.do選擇要把錄制的腳本放到哪一個部分, 默認情況下是「Action」。
這里簡單說明一下:VuGen 中的腳本分為三部分:vuser_init、vuser_end 和Action。其
中vuser_init 和vuser_end 都只能存在一個, 不能再分割, 而Action 還可以分成無數多個部分( 通過點擊New 按鈕, 新建ActionXXX)。在錄制需要登陸的系統時, 我們把登陸部分放到vuser_init 中, 把登陸後的操作部分放到Action 中, 把注銷關閉登陸部分放到vuser_end 中。( 如果需要在登陸操作設集合點, 那麼登陸操作也要放到Action 中, 因為vuser_init 中不能添加集合點) 在其他情況下, 我們只要把操作部分放到Action 中即可。注意: 在重復執行測試腳本時,vuser_init 和vuser_end 中的內容只會執行一次, 重復執行的只是Action 中的部分。
點「 選項 」按鈕, 進入錄制的設置窗體, 這里一般情況下不需要改動。
●然後點「OK」 後,VuGen 開始錄制腳本。在錄制過程中, 不要使用瀏覽器的「 後退」 功能,LoadRunner 支持不太好! 錄制過程中, 在屏幕上會有一個工具條出現。錄制的過程和WinRunner 有些類似, 不再多介紹。錄制完成後, 按下「 結束錄制」 按鈕,VuGen 自動生成用戶腳本, 退出錄制過程。
完善測試腳本
當錄制完一個基本的用戶腳本後, 在正式使用前我們還需要完善測試腳本, 增強腳本的
靈活性。一般情況下, 我們通過以下幾種方法來完善測試腳本。插入事務、插入結合點、插入註解、參數化輸入。這里只舉例介紹參數化如何設置,其它只作簡單介紹。
插入事務
事務(Transaction): 為了衡量伺服器的性能, 我們需要定義事務。比如: 我們在腳本
中有一個數據查詢操作, 為了衡量伺服器執行查詢操作的性能, 我們把這個操作定義為一個事務, 這樣在運行測試腳本時,LoadRunner 運行到該事務的開始點時,LoadRunner 就會開始計時, 直到運行到該事務的結束點, 計時結束。這個事務的運行時間在結果中會有反映。
插入事務操作可以在錄制過程中進行, 也可以在錄制結束後進行。LoadRunner 運行在
腳本中插入不限數量的事務。
具體的操作方法如下: 在需要定義事務的操作前面, 通過菜單或者工具欄插入。輸入該事務的名稱。注意: 事務的名稱最好要有意義, 能夠清楚的說明該事務完成的動作。插入事務的開始點後, 下面需要在需要定義事務的操作後面插入事務的「 結束點」。同樣可以通過菜單或者工具欄插入。默認情況下, 事務的名稱列出最近的一個事務名稱。一般情況下, 事務名稱不用修改。事務的狀態默認情況下是LR_AUTO。一般情況下, 我們也不需要修改, 除非在手工編寫代碼時, 有可能需要手動設置事務的狀態。
插入集合點
插入集合點是為了衡量在加重負載的情況下伺服器的性能情況。在測試計劃中, 可能會
要求系統能夠承受1000 人同時提交數據,在LoadRunner 中可以通過在提交數據操作前面加入集合點, 這樣當虛擬用戶運行到提交數據的集合點時,LoadRunner 就會檢查同時有多少用戶運行到集合點,如果不到1000 人,LoadRunner 就會命令已經到集合點的用戶在此等待, 當在集合點等待的用戶達到1000 人時,LoadRunner 命令1000 人同時去提交數據, 從而達到測試計劃中的需求。
注意: 集合點經常和事務結合起來使用。集合點只能插入到Action 部分,vuser_init 和vuser_end 中不能插入集合點。具體的操作方法如下: 在需要插入集合點的前面, 通過菜單或者工具欄操作輸入該集合點的名稱。注意: 集合點的名稱最好要有意義, 能夠清楚的說明該集合點完
成的動作。
插入注釋
注釋的作用就不多說了, 不過插入注釋最好是在錄制過程中。具體的操作方法如下: 在需要插入注釋的前面, 通過菜單或者工具欄操作
參數化輸入
如果用戶在錄制腳本過程中, 填寫提交了一些數據, 比如要增加資料庫記錄。這些操作
都被記錄到了腳本中。當多個虛擬用戶運行腳本時, 都會提交相同的記錄, 這樣不符合實際的運行情況, 而且有可能引起沖突。為了更加真實的模擬實際環境, 需要各種各樣的輸入。參數化輸入是一種不錯的方法。
用參數表示用戶的腳本有兩個優點:
① 可以使腳本的長度變短。
② 可以使用不同的數值來測試你的腳本。例如, 如果你企圖搜索不同名稱的圖書, 你
僅僅需要寫提交函數一次。在回放的過程中, 你可以使用不同的參數值, 而不只搜索一
個特定名稱的值。
參數化包含以下兩項任務:
① 在腳本中用參數取代常量值。
② 設置參數的屬性以及數據源。
參數化僅可以用於一個函數中的參量。你不能用參數表示非函數參數的字元串。
另外, 不是所有的函數都可以參數化的。
參數化輸入的講解, 我們採用一個例子的方式來進行。
在本例中我們參數化用戶的登陸名:
先看如下腳本,通過腳本錄制找到用戶登陸部分,如圖
參數名隨意取,建議取通俗易懂的名字,下面我們重點介紹一下參數的類型。
●DateTime: 很簡單, 在需要輸入日期/時間的地方, 可以用DateTime 類型來替代。
其屬性設置也很簡單, 選擇一種格式即可。當然也可以定製格式。
.●Group Name:暫時不知道何處能用到,但設置比較簡單。在實際運行中,LoadRunner
使用該虛擬用戶所在的Vuser Group 來代替。但是在VuGen 中運行時,Group Name
將會是None
.●Load Generator Name: 在實際運行中,LoadRunner 使用該虛擬用戶所在Load Generator 的機器名來代替。
.●Iteration Number: 在實際運行中,LoadRunner 使用該測試腳本當前循環的次數來
代替。
.●Random Number: 隨機數。很簡單。在屬性設置中可以設置產生隨機數的范圍
.●Unique Number:唯一的數。在屬性設置中可以設置第一個數以及遞增的數的大小。
注意: 使用該參數類型必須注意可以接受的最大數。例如: 某個文本框能接受的
最大數為99。當使用該參數類型時, 設置第一個數為1, 遞增的數為1, 但100 個
虛擬用戶同時運行時,第100 個虛擬用戶輸入的將是100,這樣腳本運行將會出錯。
注意: 這里說的遞增意思是各個用戶取第一個值的遞增數, 每個用戶相鄰的兩次循
環之間的差值為1。舉例說明: 假如起始數為1, 遞增為5, 那麼第一個用戶第一
次循環取值1, 第二次循環取值2; 第二個用戶第一次循環取值為6, 第二次為7;
依次類推。
●Vuser ID: 設置比較簡單。在實際運行中,LoadRunner 使用該虛擬用戶的ID 來代
替,該ID 是由Controller 來控制的。但是在VuGen 中運行時,Vuser ID 將會是–1。
File: 需要在屬性設置中編輯文件,添加內容,也可以從現成的資料庫中取數據( 下
面我們將會介紹)
●User Defined Function: 從用戶開發的dll 文件提取數據。就目前我認為, 這種方式
沒有必要。VuGen 支持C 語言的語法,在VuGen 中重新編寫類似的函數應該不難。
上面的例子中, 我們取隨機數即可。點「Properties… ..」 按鈕, 進行屬性設置窗口
添入隨機數的取值范圍為(1-50), 選擇一種數據格式。在「屬性」 中有以下幾
個選項:
◆Each Occurrence:在運行時, 每遇到一次該參數, 便會取一個新的值
◆Each iteration:運行時, 在每一次循環中都取相同的值
◆Once:運行時, 在每次循環中, 該參數只取一次值
這里我們用的是隨機數, 選擇Each Occurrence 非常合適。
下面我們再介紹用資料庫中的用戶名來參數化登陸用戶名。
框選住登陸名,點滑鼠右鍵,彈出對話框,選擇「替換為新參數」彈出對話框,此時參數名輸入:name,參數類型選擇File,如圖
注意: 參數的文件名不要使用con.dat、pm.dat 或者lpt*.dat 等系統裝置名下面我們將會連接資料庫, 從數據表中選擇用戶名。點「數據向導」 按鈕,顯示如圖
添入連接字元串, 點「創建」 按鈕,選擇事先配置好的ODBC連接。在SQL語句里輸入select查詢語句,出現如圖窗口
提醒: 在參數數據顯示區, 最多隻能看到100 行, 如果數據超過100 行, 只能點「編輯」 按鈕, 進入記事本看。
「選擇下一行 」 有以下幾種選擇:
●Sequential: 按照順序一行行的讀取。每一個虛擬用戶都會按照相同的順序讀取
●Random: 在每次循環里隨機的讀取一個, 但是在循環中一直保持不變
●Unique : 唯一的數。注意: 使用該類型必須注意數據表有足夠多的數。比如Controller 中設定20 個虛擬用戶進行5 次循環, 那麼編號為1 的虛擬用戶取前5 個數, 編號為2 的虛擬用戶取6-10 的數, 依次類推, 這樣數據表中至少要有100 個數據, 否則Controller 運行過程中會返回一個錯誤。
「按編號」指選擇列表中的那一列數據,從左到右分別是1、2、3依次
通常用在有關聯性的數據上面。我們這里取值Sequential 即可。完成設置關閉即可
4.3 單機運行測試腳本
經過以上的各個步驟後, 腳本就可以運行了。運行腳本可以通過菜單或者工具欄來操作。
執行「 運行」 命令後,VuGen 先編譯腳本, 檢查是否有語法等錯誤。如果有錯誤,VuGen
將會提示錯誤。雙擊錯誤提示,VuGen 能夠定位到出現錯誤的那一行。為了驗證腳本的正
確性, 我們還可以調試腳本, 比如在腳本中加斷點等, 操作和在VC 中完全一樣, 相信大家誰都不會感到陌生。如果編譯通過, 就會開始運行。然後會出現運行結果。
2. 如何調試LoadRunner腳本
VuGen 包含兩個選項來幫助調試 Vuser 腳本:「分步運行」命令和斷點。這些選項不適用於 VBscript 和 VB 應用程序類型的 Vuser。
要查看「調試」工具欄,請執行下列操作:
右鍵單擊工具欄區域,然後選擇「調試」。「調試」工具欄將顯示在工具欄區域
中。
「分步運行」命令
「分步運行」命令在運行腳本時一次運行一行。通過該命令,可以依次查看腳本
每一行的執行情況。
要分步運行腳本,請執行下列操作:
1 依次選擇「Vuser」 > 「分步運行」,或者單擊「調試」工具欄上的「步驟」按
鈕。VuGen 將執行腳本的第一行。
2 繼續單擊「步驟」按鈕來執行該腳本,直到腳本運行完成為止。
斷點
通過斷點可以使腳本在特定位置暫停執行。它可用於在執行期間的預定點處檢查
該腳本對應用程序的影響。要管理書簽,請參閱第 186 頁上的「斷點管理器」。
要設置斷點,請執行下列操作:
1 將游標置於腳本中要停止執行的行上。
2 依次選擇「插入」 > 「切換斷點」,或者單擊「調試」工具欄上的「斷點」按
鈕。也可以按鍵盤上的 F9 鍵。將在腳本的左邊距顯示「斷點」符號 ( )。
3 要禁用斷點,請將游標置於包含斷點符號的行上,然後單擊「調試」工具欄上的
「啟用 / 禁用斷點」按鈕。「斷點」符號中將會顯示一個白點 ( )。禁用一個斷點
後,執行將在下一個斷點處暫停。再次單擊該按鈕可以啟用斷點。
要刪除斷點,請將游標置於包含斷點符號的行上,然後單擊「斷點」按鈕或者按
F9 鍵。
要運行包含斷點的腳本,請執行下列操作:
1 照常運行腳本。
到達斷點時, VuGen 將暫停腳本的執行。可以檢查腳本運行到斷點時的效果,
並進行必要的更改,然後從斷點處重新啟動腳本。
2 要繼續執行,請依次選擇「Vuser」 > 「運行」。
重新啟動後,腳本將繼續執行,直到遇到下一個斷點或腳本完成。
斷點管理器
可以使用斷點管理器來查看和管理斷點。通過斷點管理器您可以操縱腳本中的所
有斷點。
要打開斷點管理器,請選擇「編輯」 > 「斷點」。
要跳至腳本中的斷點處,請執行下列操作:
1 從列表中選擇一個斷點。
2 單擊「在腳本中突出顯示」。則將在腳本中突出顯示該行。
注意,每次只能突出顯示一個斷點。
管理斷點
可以通過斷點管理器添加、刪除、禁用斷點或者為斷點設置條件
要添加斷點,請執行下列操作:
1 單擊「添加」。將打開「添加斷點」對話框。
2 選擇「操作」,並指定要添加斷點的行號。
3 單擊「確定」。該斷點將被添加到斷點列表中。
要刪除斷點,請執行下列操作:
1 要刪除單個斷點,請選擇該斷點並單擊「刪除」。
2 要立即刪除所有斷點,請單擊「全部刪除」。
要啟用 / 禁用斷點,請執行下列操作:
1 要啟用斷點,請在「操作」列內選中操作的復選框。
2 要禁用斷點,請在「操作」列內清除操作的復選框。
通過斷點管理器您可以將斷點設置為在某些條件下暫停執行。
3. loadrunner怎麼腳本代碼快速添加註釋
選中後,CTRL+ALT+C
取消注釋,CTRL+ALT+U
4. 如何使用LoadRunner進行Web性能測試
1、明確壓力點,根據壓力點設計多少種場景組合
2、把文檔(包括多少種場景組合、場景與場景組合條件的對應表)寫好
3、如果監測UNIX機器,在被監測的機器需要安裝監測Unix的進程
4、讓開發人員幫助我們准備測試數據或他們寫相關的文檔我們來准備數據
5、讓開發人員做一個恢復數據的腳本,以便於我們每次測試的時候都能夠有一個相同的環境
6、針對每一個模塊包括四個子文件夾:如模塊A下包括「腳本」「場景」「結果」「圖表」 四個子文件夾,每個子文件夾儲存對應的文件,如下表所示
其中:結果名「1場景」是在場景中的「Results Setting」中設置的,具體的設置見「建立場景」部分,這里也可以有另外一種方法:在打開模板設置,如下:
選中「Automatically save the session as:」並且在「%ResultDir%」後面填寫你想保存的文件名,當你打開某個lrr文件時,系統自動在當前目錄中生成一個文件保存分析圖表,如下圖所示:
生成測試腳本
1、 把登陸部分放到「vuser_init」部分,把需要測試的內容部分放到「Action」部分執行;但是如果是模擬多個用戶登陸系統,則要把登陸部分放到Action部分來實現
2、 錄制腳本後,想查詢某個函數的原型,按「F1」鍵
3、 確認腳本中哪些參數是需要進行參數化的(最好能可以和開發人員一起確認)
4、 在腳本參數化時把函數web_submit_data()中的ITEMDATA後面的數據參數化,因為這些數據是傳遞給伺服器的,當然也可以把一個函數中的所有相同變數都替換掉
5、 腳本中無用的部分用「/*」「*/」「//」注釋掉,但最好不要刪除
6、 調試腳本遵循以下原則:
確認在VU里SUSI(單用戶單循環次數single user & single iteration)
確認在VU里SUMI(單用戶多循環次數single user & multi iteration)
確認在controller中MUSI(多用戶單循環次數multi user & single iteration)
確認在controller中MUMI(多用戶多循環次數 multi user & multi iteration)
7、 事務的名稱取的有意義便於事務之間的區分,把所有的事務名都記錄在一起,便於在測試結果概要中區分它們,這要寫成一個表:某次測試有哪些模塊,每個模塊中有哪些事務(見對應的「關系表」)
8、 在 「Parameter List」中可以選擇參數類型「Random Number」,使某一個參數取設定的范圍內的隨機值
建立場景
1、 把場景名稱編號,並制定出一份場景名稱和場景條件組合的對應表。比如,場景m對應於「某一模塊_xx個vu _分z台machine」(見「關系表」中的例子)
2、 根據上面的對應表把場景設置好,需要設置的要素如下:總體多少個用戶、分多少個組、每個組有多少個用戶、分幾台機器運行、每個腳本迭代多少次、是否回放think time時間、檢查Parameter List中每個參數設置是否正確、參數從表中取值間隔是否正確、是否選中「Initialize all Vusers before Run」
3、 測試結果應該保存為「m場景0,m場景1,…」
4、 把虛擬用戶分散到幾台機器上和在一台機器上面都要進行測試,因為有可以效果不同
5、 場景中如果有需要改動的地方,必須新建一個場景(建議使用「另存為」,然後再修改結果文件名,再選擇相應的腳本),並把場景按順序編號,先維護好場景與場景組合條件的對應表,以便以後的查找,並且在結果 「Results Setting」中設置的結果名與場景名相同。建議在「Results Setting」中選中「Automatically create a results directory for each scenario executeon」讓它每次自動累加,不建議選中「Automatically overwrite existing results directory without prompting for confirmation」,因為我們不要覆蓋掉以前的測試結果,把它保存下來以便有個根據。
6、 需要注意的地方:當在「Parameter List」中的「Select next row」選中「Unique」時,如果再在「Edit Schele\Schele by Scenario\Duration」中選中第二項「Run for XX after the ramp up has been completed」時系統就會報錯,提示「Unique」類型不相符。
7、 在「Run-time Setting」設置中,「General」中的「Pacing」非常有用,可以設置每次迭代之間相隔多少時間,也可以是隨機的取值
8、 建議:把「Parameter List」和「Run-time Setting」中的所有設置都搞熟悉,這樣便於以後對腳本和場景進行設置
9、 設計「Parameter List」時的小技巧:即在「Allocate X values for each Vuser」時,盡量 把它的間隔在數據容許的范圍內取大些,這樣可以做從一次迭代到最大值迭代,而且對腳本沒有什麼影響
10、當一個腳本中有多個事務,在事務前面增加集合點時需要一點技巧。或者我們把腳本復制幾個,或者我這樣做:測試前面的事務的壓力時,把後面的事務前的集合點設置為不激活狀態;在測試後面的事務的壓力時,把前面的事務的集合點設置為不激活狀態,另外最好不選中Initialize all Vusers before Run,具體參見Controller中的「Scenario/Rendezvous」,及用戶手冊(按F1)
11、把持續時間從最後60秒改為整個場景的時間,右鍵單擊某個圖,選擇「Configue」,修改Graph Time即可
12、每次從一個場景修改後保存為另一個場景時別忘記把結果保存文件名修改相對應的文件名。在設置結果保存文件名時有一個技巧:如果你打開這個窗口時,點擊確定則系統會
默認以「4場景2」為基點向後加「4場景20」「4場景21」等等,但是如果你把結果文件名後面的數據去掉,改為「4場景」,點擊確定後,系統會自動搜索是以「4場景」開頭的文件名,並在它的後面繼續增加,比如把它改為「4場景」時,下次結果保存在「4場景3」中。而且他在搜索的時候搜索以「4場景」開頭的文件名,從0開始,有的話就不取代而跳過,沒有的話就取代。
運行場景
1、 運行場景前需要注意的事項:每個組的虛擬用戶數、迭代次數、think time、參數化時的取值間隔、執行恢復數據的腳本、確認虛擬機的LoadRunner Agent Service打開
2、 如果監測Unix,運行場景前需要啟動監測Unix進程,啟動的命令「rpc.rstatd」、查看這個進程是否啟動的命令「rpcinfo –p」
3、 運行前使Generator機器處理Ready狀態
4、 確認被監測的機器已經連接上去,並且添加自己所需要的計數器
5、 運行之前一定要確認系統中壓力點的數據量是多少
6、 確認以上都正確時再運行測試場景
監視場景
打開 「Passed Transactions」或「Failed Transactions」,可以隨時觀察到事務的運行狀態
分析測試結果
1、 打開Analysis後,把經過數據處理的結果圖表保存到「圖表」文件夾,並且文件名和場景名、結果名相同,這樣便於以後的查閱。也可以省去每次進行數據處理的時間。
2、 可以通過點擊界面上的 「View Run Time Setting」可以看到此場景運行時的一些場景設置
3、 在關聯圖表時可以自動調節每個元素的比例,點擊右鍵,選擇 即可
4、 每次測試結束後確認所做的操作是正確的,確認正確後再分析結果
5、 在結果文件夾中為每個場景建立一個文檔,把每次運行時的情況記錄下來以便於寫測試報告,尤其運行錯誤的原因記錄下來,並把開發人員所做的修改也記錄下來以便知道開發人員做了些什麼修改
6、 在分析運行結果時可以把幾個結果合在一起進行比較,打開如下「Cross with Result…」
5. loadrunner怎麼自定義參數並腳本獲取參數
方法/步驟
使用loadrunner創建一個腳本的,然後進行點擊loadrunner菜單中的「vuser」的選項。
彈出了下拉菜單中進行選中為「run-time settings」的選項即可。
進入到了run-time settings框後進行選中為additional attributes的選項。
進入到了additional attributes後,點擊「add」添加按鈕。
在列表中進行添加為argument name為test,argument value為123456
然後在腳本代碼中進行為lr_error_message(lr_get_attrib_string("test"))
在進行腳本中代碼即可後,會在log的信息中找到為該項信息,test對應值為123456