1. 引言
1.1. 簡介
loadrunner是一種預測系統行為和性能的負載測試工具,它可以輕松創建虛擬用戶、創建真實的負載、定位性能問題、重復測試保證系統的高性能
globa-100的注冊碼:AEAMAUIK-YAFEKEKJJKEEA-BCJGI
web-10000的注冊碼:AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB
對於mms協議:
mms-1000:AEACFSJI-YASEKJJKEAHJD-BCLBR
mms-6.5w的注冊碼AEACFSJI-YJKJKJJKEJIJD-BCLBR
1.2. 組成
1.1.1. Vuser Generator
c語言腳本開發的
1.1.2. Controller
指揮官的作用,控制執行場景
1.1.3. Analysis
收集測試數據,進行結果分析的
1.3. 文檔說明
本博客是結合我所在公司性能測試過程中使用loadrunner工具,總結出的經驗文檔,包括了安裝、編寫腳本、運行場景3個過程中的注意事項
2. 注意事項
2.1. 安裝過程總結
2.1.1. 安裝成功loadrunner后啟動錄制腳本,瀏覽器總是出不來
這個問題為什么我放到文檔第一個,因為這個問題是幾乎所有的使用loadrunner的新人都是會碰到的,這個也是一個老生長談的問題了,所以我把它放到了第一位
出現這個問題的原因,無非就是你的瀏覽器啟動了第三方插件或者PC機有些殺毒軟件沒有關閉,比如360。所以為了避免出現這個問題,我推薦安裝一個VMware Workstation虛擬機中安裝XP系統,然后在XP中安裝loadrunner,這個可以保證每次使用loadrunner的時候避免因為環境問題,導致碰到困難
2.1.2. 安裝出現Microsoft Visual c++2005 sp1安裝失敗?
1、進入loadrunner-11\Additional Components\IDE Add-Ins\MS Visual Studio .NET
2、安裝:LRVS2005IDEAddInSetup.exe
3、再安裝loadrunner
2.1.3. 安裝出現“計算機缺少vc2005_sp1_with_atl_fix_redist”
在lr安裝包里面下“loadrunner-11\lrunner\En\prerequisites\vc2005_sp1_redist”有 vcredist_x86.exe 安裝下就可以了
2.2. 編寫腳本過程總結
2.2.1. 如何使用錄制
1. 在本機的所有程序中打開Vuser Generator,如下圖
2. 如下圖,在彈出的窗口中,點擊New Script按鈕
3. 如下圖,在彈出的窗口中,選擇HTTP/HTML協議后點擊Create按鈕
4. 如下圖,在彈出的窗口選擇瀏覽器和url地址后,點擊OK按鈕,然后等待彈出瀏覽器並打開url地址后,就可以進行腳本的錄制了
5. 如下圖,在進行操作完畢后,點擊停止按鈕,即可完成錄制,loadrunner會自動生成c語言腳本
6. 如下圖,即為loadrunner錄制的腳本截圖,錄制的腳本自動在Action()中顯示,我們可以參考錄制腳本中客戶端和服務器之間的數據交互,自己重新編寫測試腳本
2.2.2. 事物
為什么用事物
事物Transaction,一般我們用來衡量一個action所消耗的時間,通過它,可以知道一個操作的消耗相應時間,它是作為度量系統性能的唯一指標
如何使用事物
在需要插入事物的請求前面使用快捷鍵Ctrl+T,然后填寫事物名稱,點擊確定即可完成事物的插入
使用的注意點
1.為事物取名要有意義,比如登入事物,我們一般就用login
2.建議是一個請求設定為一個事物,這樣我們分析結果的時候可以更好定位哪個環節的事物耗時多,需要性能調優
3.設置事物后,一定要判斷事物成功和失敗的條件,既獲取請求的返回值是否是預期的結果。是,則事物PASS,否則,事物FAIL
2.2.3. 腳本參數化
為什么要參數化
為了讓腳本有更好的適應環境的變化,比如userName、password的變化,於是我們就把userName、password設定為“參數”,然后“參數”通過讀取txt等方式獲取預制數據,提高腳本適應能力
如何參數化
使用鼠標選擇需要作為“參數”的字符串,鼠標右鍵“Replace with a parameter”,然后在彈出窗口填寫參數名、選擇類型,再點擊【Properties】按鈕,在彈出框中設置參數內容和取值方式,即可完成參數化
參數化注意點
1.完成某個字符串參數化后,在調試腳本的過程中,建議直接用快捷鍵Ctrl+L,打開參數列表
2.在為運行場景的時候,我們一般希望每個用戶都是用不同的參數數據,所以在參數列表中我們會預制足夠多的數據,並且一般我們會設定讀取參數的方式為
Ps:這個可以根據具體情況,自定義
3.loadrunner對於參數的引用是用“{}”作為表示的,所以引用參數的話,不要忘記“{}”
2.2.4. 關聯
為什么要關聯
對於腳本,很多時候,我們處理數據的時候,是需要對服務端返回的數據進行解析,而服務端返回的數據如果每次都是變化的話,每次我們都是需要動態獲取,這個時候就需要關聯。簡單來說,就是處理服務端返回的動態數據
如何關聯
1.錄制2次腳本
2.通過loadrunner自帶的工具WinDiff對比2次腳本的不同,如下圖
3.因為2次腳本操作步驟一樣,不同的內容可以根據錄制業務分析出得出需要關聯地方,如下圖1,黃色高亮的地方就是2個相同操作步驟,但是錄制腳本對比不同的地方,這個時候我們只要在操作網頁中找到出現不同點的html源碼處,如下圖2;或者也是可以啟用Run-time Settrings中所有log設置,然后在進行錄制過程中output window找到不同點出現的地方
圖1
圖2
4.使用函數web_reg_save_param關聯動態數據,保存參數,供其他地方使用,這個時候注意使用函數的過程左右邊界范圍,通過web_reg_save_param關聯代碼如下,這樣就完成了手動關聯
web_reg_save_param("iisCore", "LB/IC=/(S(", "RB/IC=))/", "Ord=1", "Search=All", LAST);
關聯注意點
1.關聯函數是在請求函數之前定義的
2.關聯數據的時候注意關聯函數的左右邊界不要寫錯了
2.2.5. 集合點注意點
集合點就是為了讓Vuser集合,然后同時做某個操作,只要在相應的請求前設定有意義的集合點lr_rendezvous即可
2.2.6. 如何使用集合點


2.如下圖3,將步驟1中的腳本在Controller中打開,在Controller界面,點擊菜單欄Scenario-Rendezvous,然后在彈出的窗口中自定義設置集合點的使用方式,即可完成集合點的簡單使用
2.2.6. 腳本調試注意點
1.如下圖,在運行時設置窗口,開啟日志,這樣有利於我們調試腳本
2.如下圖,設置回放的時候,打開瀏覽器快照,在調試腳本的時候,我們可以知道對應腳本相應的界面,圖形界面有利於我們調試
2.3. 執行場景過程總結
2.3.1. 執行場景前需要注意點
1.如下圖,進入腳本的運行時設置窗口,設置日志為標准。解釋:當運行場景時候,假如大量用戶碰到異常,如果此時選擇輸出日志信息,這個輸出操作會消耗負載機的資源,使得定位系統性能瓶頸,不能准確判斷是負載機問題還是被測系統的問題
2.如下圖,在運行時設置中,選擇“每次迭代清除高速緩存”。解釋:因為壓力測試的時候,是模擬不同用戶訪問服務器,此時不同用戶訪問肯定會從服務器中下載資源,此時我們就要保證每個用戶訪問瀏覽器都是不存在緩存的
3.如下圖,在運行設置中,設定腳本的思考時間為“按照錄制時記錄時間”,因為我們是模擬用戶操作,所以操作過程中是需要思考時間
4.如下圖,這個也是比較重要的在場景窗口,設置大於負載機實際運行的Vuser數
Ps:假如忘記設置,loadrunner默認一個負載機最大運行Vuser為5000人,當你設置Vuser超過5000人后,運行場景后,超過5000的Vuser會自動失敗
2.3.2. 如何使用場景
1. 如下圖,在本機的所有程序中打開Controller
2. 如下圖,在彈出的窗口中點擊Browser按鈕,在彈出窗口選擇腳本后點擊OK
3. 如下圖,新增負載機
4. 如下圖,在彈出窗口執行下圖操作
5. 如下圖,驗證負載機連接狀態
6. 如下圖,選擇百分比模式,為了可以方便均衡分配負載機人數
7. 如下圖,選擇負載機和負載機人數
8. 如下圖,設置5w人執行腳本,1s/20人的速度開始執行場景
9. 如下圖,設置場景執行:一直運行,直到所有人腳本執行完畢
10. 如下圖,點擊按鈕,彈出框點擊確定,即可開始執行場景
11. 如下圖1,在切換至Run,可以查看運行過程中,所有Vuser運行情況,如圖2;日志查看如圖3
圖1
圖2
圖3