四個小技巧讓JMeter更接近瀏覽器的行為

四個小技巧讓JMeter更接近瀏覽器的行為

Jmeter 主要用在網站的效能測試。利用Jmeter模擬大量的網路流量與Browser行為。

但是Jmeter 畢竟與 Browser還是有差異。因此這篇文章主要說明

JMeter 與 Browser主要差異的地方,與什麼測試情境下我們會將JMeter模擬與Browser接近的行為。

 

JMeter 與Browser差異處

對於網路流量而言,有幾個很重大的差異是

瀏覽器針對特定網頁存取的時候,會同時發出多個threads,將該網頁資訊下載,(如下圖所示)

但是JMeter對於網頁存取是 1 個thread接續存取。

另外,瀏覽器在存取網站的時候,會將 CSS, HTML, JS, PNG等檔案下載完之後,Rendering UI 並且執行相關的JavaScript

相對於 JMeter ,JMeter對於這些檔案只會選擇性的下載,同時下載之後並不會執行。JMeter 也沒有JavaScript Engine 可以執行。

這些差異也間接說明為什麼使用JMeter執行 3000 個使用者的效能測試,與真實3000 個實際使用者用瀏覽器測試有些落差。

 

JMeter concurrent fetch

 

為什麼要讓Jmeter模擬接近瀏覽器

那麼什麼情況下我們會盡量模擬 JMeter 接近瀏覽器的行為?

這種情況特別當我們希望知道瀏覽器的response time時,

例如:有使用者常抱怨網站很慢,因此我們就會可以利用JMeter模擬一連串的網站瀏覽行為

並且藉此長時間觀察每次瀏覽該網站的反應時間,藉此測試出一定的效能基準。

到底每個頁面反應時間平均是 3秒、5秒 or 10秒。到底慢是長期的還是特定時刻、特定網頁動作。

什麼情況我們不需要模擬JMeter跟瀏覽器類似的行為?

當我們的測試目標為了解網站伺服器的效能時,這個時候我們僅會利用JMeter模擬出相當的網頁存取流量。

 

模擬JMeter接近網頁的四個技巧

預設,JMeter並不會有這些設定,所以如果要讓JMeter接近瀏覽器的行為

必須將JMeter script 增加下列四個元素。

  • 1. Cache Manager – 瀏覽器有快取的機制,但是必須注意的是快取機制會間接影響所要模擬送出的網頁流量
  • 2. Cookei Manager – 瀏覽器有Cookie,有些資訊內容會被存放在cookie
  • 3. Header – Http Header 有許多的設定值,對於JMeter 測試來說,最重要需要模擬的 Http Header 就是 User Agent.  因為User Agent 定義該瀏覽器為IE、FireFox、還是Chrome、或是Mobile Browser。
  • 4. 最後一個就是設定是否要下載相關的網頁資源,例如 CSS、JS、JPG等,預設JMeter 並不會下載這些網頁資源。另外可以設定是否要額外啟動 threads進行同步下載

JMeter 4Tips Browser

Leave a Reply

Your email address will not be published. Required fields are marked *