談到性能測(cè)試蝇恶,大家一定會(huì)聯(lián)想到Jmeter和LoadRunner,這兩款工具目前在國(guó)內(nèi)使用的相當(dāng)廣泛渤闷,主要原因是Jmeter是開(kāi)源免費(fèi),LoadRunner 11在現(xiàn)網(wǎng)中存在破解版本含潘。商用型性能測(cè)試工具對(duì)于中小型企業(yè)很難承擔(dān)相關(guān)的費(fèi)用饲做。國(guó)內(nèi)的性能測(cè)試工具有:CPTS(華為)、kylinTOP(奇林)遏弱、PTS(阿里)等盆均,國(guó)外的性能測(cè)試工具LoadRunner相對(duì)比較出名。Loadrunner在國(guó)內(nèi)出名的原因主要還是因?yàn)長(zhǎng)oadRunner 進(jìn)入中國(guó)的市場(chǎng)比較早漱逸,而且網(wǎng)上還存在破解版本±嵋蹋現(xiàn)在我們主要研究一下Jmeter工具。網(wǎng)絡(luò)上經(jīng)呈问悖看到網(wǎng)友們抱怨Jmeter工具測(cè)試的結(jié)果不準(zhǔn)肮砾,而為什么不準(zhǔn)都是丈二的和尚摸不著頭腦。那么今天我就和網(wǎng)友們分享一下Jmeter工具在使用上到底有什么限制袋坑,以期對(duì)網(wǎng)友們有幫助仗处,提高對(duì)Jmeter工具的認(rèn)知。
? ? Apache軟件基金會(huì)(ASF)是一家總部位于美國(guó)的非營(yíng)利性慈善組織枣宫。ASF的所有產(chǎn)品都通過(guò)公共論壇的在線協(xié)作開(kāi)發(fā)婆誓,并從美國(guó)境內(nèi)的中央服務(wù)器分發(fā)。Jmeter是ASF的一款開(kāi)源免費(fèi)軟件?也颤,在國(guó)內(nèi)被很多中小公司當(dāng)作性能測(cè)試工具廣泛使用洋幻。該款工具的本意不是用于性能測(cè)試,而是用于開(kāi)發(fā)人員的接口功能調(diào)試使用翅娶。
? ??Jmeter做性能或壓力測(cè)試文留,首先要建立一個(gè)線程組好唯,如果需要事務(wù)在線程組內(nèi)再添加事務(wù),然后根據(jù)需要可以設(shè)置并發(fā)的虛擬用戶數(shù)厂庇。Jmeter構(gòu)造并發(fā)虛擬用戶的技術(shù)路線是通過(guò)構(gòu)造線程渠啊,每個(gè)線程同時(shí)運(yùn)行相同的線程組。為了弄清楚jmeter統(tǒng)計(jì)結(jié)果不準(zhǔn)確权旷,首先我們要搞清楚Jmeter對(duì)線程組中的HTTP請(qǐng)求運(yùn)行的機(jī)制。
1贯溅、 測(cè)試思路
步驟1:使用Jmeter錄制一個(gè)web頁(yè)面
步驟2:建立測(cè)試計(jì)劃拄氯,各自運(yùn)行腳本一次,運(yùn)行的過(guò)程通過(guò)(wireShark抓包)
步驟3:通過(guò)對(duì)wireShark網(wǎng)絡(luò)抓包結(jié)果分析HTTP請(qǐng)求的順序它浅。
步驟4:wireShark抓包獲得的HTTP請(qǐng)求順序與瀏覽單獨(dú)訪問(wèn)URL時(shí)的幕布對(duì)比译柏。?
?2、選擇被測(cè)試對(duì)象
? ? ? 基于以上思路我們從網(wǎng)絡(luò)上選取一個(gè)web URL(HTTP://cloud.10oa.com/trial/view/catalogue.aspx)作為被測(cè)試對(duì)象
3姐霍、腳本錄制同時(shí)F12打開(kāi)Chorme的network選項(xiàng)
? ? ? ? 通過(guò)Jmeter 5.1工具自帶的代理錄制功能鄙麦,錄制上述URL,在錄制的過(guò)程中按F12鍵镊折,切換到network選項(xiàng)胯府。
? ? ???注意:Jmeter錄制時(shí)必須按F12,把chrome的network打開(kāi)才錄制到完整的HTTP請(qǐng)求,否則可能只能錄制到第1條請(qǐng)求恨胚。
Jmeter腳本錄制時(shí)的頁(yè)面HTTP瀑布圖
4骂因、執(zhí)行性能測(cè)試計(jì)劃
? ?單擊Jmeter的測(cè)試計(jì)劃啟動(dòng)按鈕,單用戶啟動(dòng)執(zhí)行一次腳本
注:此圖通過(guò)wireShark的網(wǎng)絡(luò)抓包獲得HTTP請(qǐng)求的開(kāi)始與結(jié)束時(shí)間赃泡,再通過(guò)excel畫出瀑布圖
5寒波、測(cè)試結(jié)果分析
? ? 從Jmeter的測(cè)試計(jì)劃執(zhí)行結(jié)果的wireShark抓包分析的瀑布圖看,Jmeter對(duì)HTTP請(qǐng)求是按串行下發(fā)請(qǐng)求(前一個(gè)請(qǐng)求返回結(jié)束升熊,下一請(qǐng)求才開(kāi)始下發(fā)請(qǐng)求)俄烁,并發(fā)數(shù)為1個(gè)HTTP,從開(kāi)始執(zhí)行到最后執(zhí)行結(jié)束,用時(shí)超過(guò)3秒鐘级野,真實(shí)瀏覽器單獨(dú)訪問(wèn)URL時(shí)長(zhǎng)在1秒左右页屠。
? ? ? Jmeter可用于開(kāi)發(fā)人員在產(chǎn)品開(kāi)發(fā)中的功能調(diào)試使用并做一些非定量的性能測(cè)試,不適用于測(cè)試人員做定量的性能測(cè)試勺阐,更不能以此測(cè)試結(jié)果輸出測(cè)試結(jié)論誤導(dǎo)他人卷中。
? ? 如果web服務(wù)器對(duì)外提供的服務(wù)是純HTTP接口功能(非web頁(yè)面),且用戶的訪問(wèn)是線性的(串行訪問(wèn))渊抽,則可以考慮使用Jmeter測(cè)試蟆豫。即使web服務(wù)器對(duì)外提供的服務(wù)是純HTTP接口功能(非web頁(yè)面),如果用戶訪問(wèn)是非線性,那么測(cè)試的結(jié)果也是不可靠的懒闷。記住一點(diǎn)十减,只有線性的接口請(qǐng)求模型才適用于Jmeter栈幸。