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