更新時間:2020-12-04 來源:黑馬程序員 瀏覽量:
性能測試是軟件測試中一個很重要的分支,人們?yōu)榱颂岣咝阅軠y試的效率,開發(fā)出了很多性能測試工具。一款好的測試工具可以極大地提高測試效率,為發(fā)現軟件缺陷提供重要依據。目前,市面上的性能測試工具很多,有收費的也有免費的,下面將介紹兩個比較常用的性能測試工具:LoadRunner和JMeter。
Loadrunner最初是由Mercury公司開發(fā)的一款性能測試工具,2006年被惠普(HP)公司收購,此后,LoadRunner就成為了HP公司重要的產品之一。LoadRunner是一款適用于各種體系架構的性能測試工具,它能預測系統(tǒng)行為并優(yōu)化系統(tǒng)性能,其工作原理是通過模擬一個多用戶(虛擬用戶)并行工作的環(huán)境來對應用程序進行負載測試。在進行負載測試時,LoadRunner能夠使用最少的硬件資源為模擬出來的虛擬用戶提供一致的、可重復并可度量的負載,在測試過程中監(jiān)控用戶想要的數據和參數。測試完成,LoadRunner可以自動生成分析報告,給用戶提供軟件產品所需要的性能信息。
相比于其他性能測試工具, Loadrunner主要有以下特點。
(1)廣泛支持業(yè)界標準協(xié)議。
(2)支持多種平臺開發(fā)的腳本。
(3)可創(chuàng)建真實的系統(tǒng)負載。
(4)具有強大的實時監(jiān)控與數據采集功能。
(5)可以精確分析結果,定位軟件問題。
LoadRunner好用且功能強大,唯一美中不足的是它不是開源產品,使用 LoadRunner的用戶需要向HP公司付費。
LoadRunner工具主要由3部分組成: Virtual User Generator(簡寫為 VuGen)、 Controller和Analysi。下面分別介紹這3個組成部分的作用。
1. VuGen( Virtual User Generator)
LoadRunner是通過多個虛擬用戶在系統(tǒng)中同時工作或訪問系統(tǒng)的環(huán)境來進行性能測試的,虛擬用戶進行的操作通常被記錄在虛擬用戶腳本中,而VuGen就是用于創(chuàng)建虛擬用戶腳本的工具,因此它也被稱為虛擬用戶腳本生成器。
在創(chuàng)建腳本時,VuGen會生成多個函數用于記錄虛擬用戶所執(zhí)行的操作,并將這級插入到VuGen編輯器中生成基本的虛擬用戶腳本,這個創(chuàng)建腳本的過程也叫作錄制腳本。例如,有一款軟件產品基于數據庫服務器,所有用戶的信息都保存在數據庫中,當用戶查詢信息時,整個查詢過程可分為以下幾個操作。
(1)登錄軟件。
(2)連接到數據庫服務器。
(3)提交SQL查詢。
(4)檢索并處理服務器響應。
(5)與服務器斷開連接。
VuGen會監(jiān)控上述操作,并以代碼的形式將這幾個操作記錄下來,生成一個VBScript 腳本文件。當執(zhí)行該腳本文件時,可以自動執(zhí)行上述操作,即自動執(zhí)行查詢操作。在錄制期間,VuGen會監(jiān)控虛擬用戶的行為,并跟蹤用戶發(fā)送到服務器的所有請求以及從服務器接收到的所有應答。
2. Controller
Controller用于創(chuàng)建和控制LoadRunner場景,場景負責定義每次測試中發(fā)生的事件,包括模擬的用戶數、用戶執(zhí)行的操作以及測試要監(jiān)控的性能指標等。
以VuGen中所舉的軟件產品為例,用戶可以登錄軟件查詢個人信息,如果全國各地的用戶都要查詢信息,那么軟件可以承受多大的負載?這就需要進行負載測試,例如使用100個用戶同時執(zhí)行查詢操作并觀察軟件的運行情況,這就是一個場景,這個場景可以使用Controller定義。設置100個虛擬用戶,讓這100個虛擬用戶同時執(zhí)行VuGen錄制的查詢操作腳本,這就相當于讓100個用戶同時執(zhí)行查詢操作,在場景運行期間添加響應時間、并發(fā)用戶數等性能指標,監(jiān)控這些指標的變化,檢查服務器的可靠性及負載能力。
3.Analysis
Analysis是LoadRunnerI的數據分析工具,它可以收集性能測試中的各種數據,對其進行分析并生成圖表和報告供測試人員查看。
關于LoadRunner的安裝以及這3個工具的使用,后面會進行詳細講解,在這里讀者對duNner以及這3個工具有一個整體的認識即可。
JMeter是由 Apache公司開發(fā)和維護的一款開源免費的性能測試工具。JMeter以Java作為底層支撐環(huán)境,它最初是為測試Web應用程序而設計的,但后來隨著發(fā)展逐步擴展到了其他領域?,F在JMeter可用于靜態(tài)資源和動態(tài)資源的測試,例如,它可用于模擬服務器、服務器組,網絡或對象上的重負載以測試其強度、分析不同負載類型下的整體性能。
JMeter的工作原理與LoadRunner類似,它也是通過模擬出多個虛擬用戶向服務器發(fā)送請求,檢測響應返回情況,如并發(fā)用戶數、響應時間、資源占用情況等,以此檢測系統(tǒng)的性能。與 LoadRunner不同的是, JMeter工具通過線程組創(chuàng)建虛擬用戶,一個線程組可以設置多個線程,每個線程就是一個虛擬用戶,這些線程相互獨立,互不影響。虛擬用戶向服務器發(fā)送一個請求,JMeter稱之為一次采樣,這個操作有采樣器來完成。
JMet工具主要由以下幾個核心組件構成。
(1)邏輯控制器( Logic Controller):邏輯控制器確定采樣器的執(zhí)行順序。
(2)配置元件( Config Element):配置元件可用于設置默認屬性和變量等數據,供采樣器獲取所需要的各種配置信息。
(3)前置處理器( Per processors):在實際的請求發(fā)出的請求進行特殊的處理。例如, Http Url重寫修飾符可以實現URL重寫,當發(fā)送的請求中有SessionID信息時,可以通過該前置處理器填充發(fā)出請求的實際SessionID。
(4)定時器( Timer):用于在操作之間設置等待時間。
(5)采樣器( Sampler):采樣器是JMer主要執(zhí)行組件,它用于向服務器發(fā)送一個請求并記錄響應信息,包括成功/失敗、響應時間、數據大小等。 JMeter支持多種不同的采樣器可根據設置的不同參數向服務器發(fā)送不同類型的請求(HTTP、FTP、TCP等)
(6)后置處理器( Post processors):后置處理器一般放在采樣器之后,用來處理服務器的返回結果。
(8)監(jiān)聽器( Listener):用于監(jiān)聽測試結果。此外,監(jiān)聽器還具備查看、保存和讀取測試結果的功能。
使用JMeter進行性能測試時,在線程組中設置好相關參數,并通過配置元件、前置處理器、定時器、斷言等組件設置其他的參數信息,然后使用采樣器發(fā)送請求,通過后置處理器斷言、監(jiān)聽器等組件分析查看測試結果。
與 LoadRunner相比, JMeter是一款開源免費的輕量級工具,安裝簡單,并且支持二次開發(fā),但是在性能測試過程中,JMer的錄制功能、環(huán)境調試功能與 LoadRunner都存在一定差距,而且JMeter的報表較少,結果分析也沒有LoadRunner詳細。總之, MEeter和 LoadRunner各有優(yōu)勢與不足,大家在測試時可以根據自己的需要進行選擇。
猜你喜歡: