天天看點

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

本節書摘來自華章計算機《loadrunner性能測試巧匠訓練營》一書中的第3章,第3.2節,作者:趙 強 鄒偉偉 任健勇 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

controller可以完成多種場景設計,如快增長、慢增長、組模式等,基本可以滿足日常的性能測試場景需求。啟動controller後的建立場景界面如圖3-1所示。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

下面解釋圖3-1中的主要選項。

1)select scenario type:選擇場景類型。根據需要,可以選擇手工場景和基于目标的場景。各子選項含義如下。

manual scenario:手工場景。就是手工指定場景如何運作,比較靈活,可以完成絕大多數的場景需求。此處還有一個選項,是否使用百分比模式,一般情況下不勾選。

goal-oriented scenario:基于目标的場景模式。就是要設定一個目标,然後達到這個目标。例如,設定hits per second 100,接着設定虛拟使用者數的範圍(這個是和manual scenario不同的地方),最後根據設定的時間運作,如果沒有達到既定目标,則可以選擇停止運作或繼續運作,如圖3-2所示。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

https://yqfile.alicdn.com/f346dc0cc3dc87a1d1517f1c0cb06fb8920eb683.png

" >

2)available scripts:目前可以使用的腳本。如果沒有想要的腳本,可以單擊browse按鈕選擇。

3)scripts in scenario:當選中要加入場景的腳本後,單擊add按鈕,即可把腳本加入場景并在該列中顯示。

此處小白選擇了最常用的手工場景,并将之前練習的腳本加入場景,詳細學習controller。

3.2.1 集合點實戰

下面将從什麼是集合點、如何啟用集合點和集合點的應用政策方面進行講解。

了解集合點

集合點是什麼呢?仍以前面的跑步為例。所謂集合點,就是10名運動員從起點出發,要跑3圈,規定再次經過起點時要等待所有運動員全部到達後,才能進行第2圈的賽跑。集合點就是這個道理,它的意義在于最大程度地模拟并發。

啟用集合點

在loadrunner中啟用集合點需要在編寫腳本時加入,集合點函數為lr_rendezvous("集合點名稱");。隻需把集合點函數放到腳本的某個事務或操作之前即可。隻有完成這步操作後,才能在controller中啟用集合點,方法為依次單擊insert→rendezvous菜單項,如圖3-3所示。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

集合點不要添加到事務中,要放到事務外,否則事務的統計會把集合點的等待時間也統計進去。集合點政策

經過上面的操作就可以進入集合點政策設定界面,如圖3-4所示。

圖3-4中主要選項含義如下。

1)rendezvous:集合點的清單,可通過下方的disable rendezvous按鈕來啟用或關閉。

2)scripts:目前腳本的名稱。

3)vuser:目前設定的并發使用者數,可通過下方的disable vuser按鈕來啟用或關閉虛拟使用者。

4)policy(集合點政策):單擊後進入政策設定對話框,如圖3-5所示。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

https://yqfile.alicdn.com/c5728fa1f161fdc5429a8aef6ec797451256ed1b.png

圖3-5中顯示了常見的3種政策,其含義如下。

當所有使用者的x%到達集合點時釋放。

當所有正在運作的使用者的x%到達集合點時釋放。

當x個使用者達到集合點時釋放。

逾時設定。表示等待使用者逾時的設定,如果在x秒内還沒有滿足要求的使用者到達,則釋放集合點。

到這裡小白并沒有停止思考,而是想到了以跑步為例再次了解集合點的3種政策。假設有100個運動員跑步,設定的集合點政策百分比均為100%,但這100個運動員并不是一開始就共同跑的,而是每隔1min加入10個運動員,即10min後才有100個運動員在跑步。這裡100就是所有運動員數,而不同時間正在跑的運動員數量是不同的。對應到圖3-5中,從上至下的政策(policy)作用如下。

第一個政策:是指當全部運動員都運作到了集合點函數時才釋放。

第二個政策:是指目前時間如果隻有10個運動員在跑步,那麼隻要這10個運動員都運作到了集合點函數就釋放。

第三個政策:當到達集合點的運動員數達到設定的數量後就釋放。

這下小白可算真正了解了集合點的含義以及政策的精髓了。

3.2.2 ip欺騙實戰

下面将從以下幾個方面來講解ip欺騙的實踐。

了解ip欺騙

看到這個搞笑的命名小白心裡一樂,這功能看着貌似很好玩。ip欺騙就是使不同使用者有不同ip位址,這樣最真實地模拟了現實場景。但有一點必須明白,對于一般系統而言,是否使用ip欺騙并不會影響性能測試。隻有在特殊的要求下才會使用,如下面兩種情況。

1)某系統限制了同一個ip使用者在短時間内對系統進行惡意或大量的請求通路。

2)負載均衡政策是根據ip規則配置設定的。

啟用ip欺騙

想要啟用ip欺騙需要做一項前置工作,就是本地的ip位址不能設定為“自動擷取”,必須指定一個靜态ip位址,否則會彈出如圖3-6所示的提示。

靜态ip位址指定好之後就可以設定ip欺騙了,步驟如下。

1)依次單擊hp loadrunner→tools→ip wizard進入設定對話框,如圖3-7所示。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

2)選擇create new setting,單擊“下一步”按鈕,出現如圖3-8所示界面。

3)輸入伺服器的ip位址,或者留白也可以,單擊“下一步”按鈕,出現如圖3-9所示界面。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

4)單擊add按鈕,彈出添加ip的對話框,如圖3-10所示。

5)修改from ip為192.168.3.9,number to add為5,單擊ok按鈕,出現如圖3-11所示界面。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

6)單擊“完成”按鈕,出現如圖3-12所示界面。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

7)單擊“save as”按鈕可以将本次增加的ip位址儲存成.ips 檔案,下次再使用時就可以直接選擇此檔案了。單擊ok按鈕後完成設定。

8)進入controller中,選擇scenario→enable ip spoofer,完成ip欺騙設定的全部操作。

如果想驗證結果,那麼可以在vugen中編寫代碼(參見代碼清單3-1),然後運作即可。

釋放ip欺騙

ip欺騙使用完成後千萬别忘了釋放,做事情一定要有頭有尾,這樣才完整。釋放的操作十分簡單,重複圖3-9~圖3-12所示的操作,并在圖3-9中,單擊remove按鈕,移除後再單擊“完成”按鈕即可。最後别忘了重新開機計算機,這樣就完成了ip的釋放。

3.2.3 添加windows和linux壓力機實戰

既然controller是loadrunner的“心髒”,那麼壓力産生也必然是它發起的,通過壓力機來對被測系統産生壓力。一般壓力機分為windows和linux。當并發量比較大時建議使用linux。

添加windows壓力機

添加windows壓力機的步驟相對來說簡單些,具體如下。

1)保證要添加的壓力機上安裝了loadrunner agent,并啟用(狀态欄中會有一個小衛星)。

2)添加的壓力機與controller所在機器要在同一個網段,建議把防火牆關閉。

3)本地系統的rpc服務要開啟(在“控制台”→“管理工具”→“服務”中開啟,建議改為自啟動)。

4)之後從controller所在的機器上登入到壓力機,驗證是否可以連通。單擊windows系統的“開始”菜單,選擇“運作”,在彈出的對話框中輸入“\機器名”,如果不報錯則成功。

5)進入controller,依次單擊scenario→load generators菜單項,出現如圖3-13所示界面,預設會有一台壓力機,即本機。

6)如果想添加其他壓力機,單擊add按鈕,出現如圖3-14所示界面。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

圖3-14中各選項的含義如下。

name:這裡很多人都會輸入機器的名稱,其實應該輸入壓力機的ip位址。

platform:預設為windows即可。

7)單擊ok按鈕,完成壓力機的添加,然後單擊圖3-13右側的connect按鈕,可以測試能否連通,如果連通,則會顯示ready狀态。

8)最後可以把壓力機分到對應的腳本上,如圖3-15所示。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

添加linux壓力機

添加linux壓力機稍微複雜些,需要有一定的linux基礎,還好小白平時也經常使用linux,是以心裡松了一口氣。添加步驟如下。

1)到hp官網下載下傳hp_loadgenerator,解壓到本地後上傳到linux中,檔案名為linux。

2)在控制台輸入chmod -r +x linux/*指令,用于修改檔案的權限。

3)在控制台輸入cd linux指令,進入linux目錄。

4)在控制台輸入./installer.sh指令,進行安裝,按照提示操作即可。

5)在控制台輸入useradd -g 0 -s /bin/bash besttest指令,用于新增一個名為besttest的使用者。

6)在控制台輸入vi /root/.bashrc指令,用于編輯.bashrc檔案,添加如下内容。

7)在控制台輸入su - besttest指令,切換為besttest使用者。

8)在控制台輸入cd /opt/hp/hp_loadgenerator/bin/指令,用于進入安裝後的預設目錄中。

9)在控制台輸入./verify_generator指令,用于驗證配置是否正确。

10)在控制台輸入m_daemon_setup start指令,用于啟動服務,如果成功,則會顯示類似下面的提示。

11)回到controller裡重複添加windows壓力機的步驟即可。這裡需要注意的是,有一點和添加windows壓力機不同,如圖3-16所示,要勾選don’t use rsh複選框。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

3.2.4 場景設計實戰

場景設計其實就是設定場景的加壓方式、運作時間、減壓方式等。場景設計并沒有好壞之分,因為目的不同,場景就有可能不同,小白學習了如下幾種常見的場景設計模型。

快增長

快增長的意思就是壓力在瞬間啟動并達到最大。設定方法為在controller中的schedule區域分别輕按兩下start vusers和stop vusers,然後選擇simultaneously,單擊ok按鈕即可,如圖3-17所示。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

這樣的設定在場景中運作,會瞬間啟動20個虛拟使用者,持續5min後,瞬間停止這20個虛拟使用者。

慢增長

慢增長的意思就是壓力按照設定的規則慢慢增加,當到達設定點後持續運作一段時間,然後慢慢減壓。設定方法同快增長,如圖3-18所示。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

https://yqfile.alicdn.com/74a3d678597759ecbb71e5f65ca866e205b5132e.png

這樣的設定在場景中運作,會以每分鐘增加5個虛拟使用者的政策增長,當達到20個虛拟使用者後,持續運作5min,然後再以每分鐘停止5個虛拟使用者的政策結束。

指定運作次數

這裡的運作次數是以虛拟使用者數來判斷的。例如,如果虛拟使用者數是10,選擇此種場景政策,則場景運作完10個虛拟使用者數後自動結束。輕按兩下duration并選中run until completion即可,如圖3-19所示。

《LoadRunner性能測試巧匠訓練營》——3.2 場景設計實戰

組模式

組模式也比較容易了解,仍然以besttest論壇為例。一些水軍經常會注冊登入論壇,然後發一些垃圾文章,管理者要删除這些文章。對于這樣有先後順序的場景選用組模式。

組模式中的政策有3種,分别如下。

1)在場景開始時啟動執行。

2)在場景執行一段時間後開始運作。

3)當某個腳本完成後再運作標明的腳本。