效能測試工具Jmeter你所不知道的內幕

SagacitySea發表於2020-03-30

談到效能測試,大家一定會聯想到Jmeter和LoadRunner,這兩款工具目前在國內使用的相當廣泛,主要原因是Jmeter是開源免費,LoadRunner 11在現網中存在破解版本。商用型效能測試工具對於中小型企業很難承擔相關的費用。國內的效能測試工具有:CPTS(華為)、 )、PTS(阿里)等,國外的效能測試工具LoadRunner相對比較出名。Loadrunner在國內出名的原因主要還是因為LoadRunner 進入中國的市場比較早,而且網上還存在破解版本。現在我們主要研究一下Jmeter工具。網路上經常看到網友們抱怨Jmeter工具測試的結果不準,而為什麼不準都是丈二的和尚摸不著頭腦。那麼今天我就和網友們分享一下Jmeter工具在使用上到底有什麼限制,以期對網友們有幫助,提高對Jmeter工具的認知。

    Apache軟體基金會(ASF)是一家總部位於美國的非營利性慈善組織。ASF的所有產品都透過公共論壇的線上協作開發,並從美國境內的中央伺服器分發。Jmeter是ASF的一款開源免費軟體 ,在國內被很多中小公司當作效能測試工具廣泛使用。該款工具的本意不是用於效能測試,而是用於開發人員的介面功能除錯使用。

    Jmeter做效能或壓力測試,首先要建立一個執行緒組,如果需要事務線上程組內再新增事務,然後根據需要可以設定併發的虛擬使用者數。Jmeter構造併發虛擬使用者的技術路線是透過構造執行緒,每個執行緒同時執行相同的執行緒組。為了弄清楚jmeter統計結果不準確,首先我們要搞清楚Jmeter對執行緒組中的HTTP請求執行的機制。

1、 測試思路

步驟1:使用Jmeter錄製一個web頁面

步驟2:建立測試計劃,各自執行指令碼一次,執行的過程透過(wireShark抓包)

步驟3:透過對wireShark網路抓包結果分析HTTP請求的順序。

步驟4:wireShark抓包獲得的HTTP請求順序與瀏覽單獨訪問URL時的幕布對比。 

 2、選擇被測試物件

      基於以上思路我們從網路上選取一個web URL()作為被測試物件

3、指令碼錄製同時F12開啟Chorme的network選項

        透過Jmeter 5.1工具自帶的代理錄製功能,錄製上述URL,在錄製的過程中按F12鍵,切換到network選項。

        注意:Jmeter錄製時必須按F12,把chrome的network開啟才錄製到完整的HTTP請求,否則可能只能錄製到第1條請求。

Jmeter指令碼錄製時的頁面HTTP瀑布圖

4、執行效能測試計劃

   單擊Jmeter的測試計劃啟動按鈕,單使用者啟動執行一次指令碼

 

注:此圖透過wireShark的網路抓包獲得HTTP請求的開始與結束時間,再透過excel畫出瀑布圖

5、測試結果分析

    從Jmeter的測試計劃執行結果的wireShark抓包分析的瀑布圖看,Jmeter對HTTP請求是按序列下發請求(前一個請求返回結束,下一請求才開始下發請求),併發數為1個HTTP,從開始執行到最後執行結束,用時超過3秒鐘,真實瀏覽器單獨訪問URL時長在1秒左右。

      Jmeter可用於開發人員在產品開發中的功能除錯使用並做一些非定量的效能測試,不適用於測試人員做定量的效能測試,更不能以此測試結果輸出測試結論誤導他人。

    如果web伺服器對外提供的服務是HTTP介面功能(非web頁面),且使用者的訪問是線性的(序列訪問),則可以考慮使用Jmeter測試。即使web伺服器對外提供的服務是HTTP介面功能(非web頁面),如果使用者訪問是非線性,那麼測試的結果也是不可靠的。記住一點,只有線性的介面請求模型才適用於Jmeter。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69965179/viewspace-2683441/,如需轉載,請註明出處,否則將追究法律責任。

相關文章