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