Jmeter是常用的模擬多用戶同時訪問web頁面URL的壓力測試工具。然後,爲了模擬的準確,Jmeter需要正確的配置,使它像瀏覽器一樣工作。在這篇文章中,我怎樣配置Jmeter,可以準確的模擬瀏覽器實際的發送的請求。
在瞭解怎樣怎樣配置Jmeter之前,我們先來了解一下瀏覽器是如何工作的:
- 當用戶在瀏覽器輸入一個web頁面URL,它會連接到服務器,開始下載頁面,並開始解析。
- 通過解析,它會遇到類似JavaScript,CSS和圖片文件的url請求。
- 瀏覽器然後創建更多的線程,每個JavaScript,CSS和圖片文件的url請求打開一個新的連接下載。大多數瀏覽器會限制與每個服務器的連接數(在本文寫作時,Firefox限制6個連接),和下載線程的總數(在本文寫作時,Firefox限制48個連接)。
- 當所有的URL下載完,認爲該web頁面加載完成。
Jmeter的兩個配置可以模擬瀏覽器上面的行爲:
- 從HTML文件獲取所有內含資源
此複選框在配置元素“HTTP請求取樣器”和“HTTP請求默認值”的底部。
選中該複選框,Jmeter下載頁面中包含的資源,如JavaScript,CSS和圖像,就像瀏覽器一樣。
如果需要看哪些資源下載了及他們的性能指標,添加“查看結果樹”。注意,在聚合報告中不包含這些內嵌資源的統計,
- 使用併發池,size=N
選中複選框,併發池行爲如下:
從HTML文件獲取所有內含資源 | 使用併發池 | 行爲 |
---|---|---|
選中複選框 | 複選框未選中複選框 | web主頁面和嵌入的資源將在同一個線程中被下載。 例如,如果線程組模擬3個用戶,Jmeter創創建“線程組3-”,名字從“線程組1-1”到“線程組1-3”。 每個線程將在各自的線程內根據資源順序下載所有的內嵌資源。 如果頁面P包含資源A、B、C,Jmeter下載方式如下: 線程組1-1:P,A,B,C(一個接一個的下載) 線程組1-2:P,A,B,C(一個接一個的下載) 線程組1-3:P,A,B,C(一個接一個的下載) |
選中複選框 | 選中複選框 池大小=X |
像上面一樣,Jmeter創建一個名爲“線程組1-K”來模擬用戶線程。 此外對於這些線程中的每一個模擬的用戶,Jmeter創建單獨的線程池,大小爲X,命名爲pool-n-thread-m。 web主頁有用戶線程“線程組1-K”下載,而嵌入的資源由命名類似pool-n-thread-m的線程池中的線程下載。 |
但是,設置併發池大小時,需要關注模擬用戶數量,因爲每個模擬的用戶創建一個單獨的線程池。如果很多用戶,創建過多的線程會對Jmeter端的貸款產生爭用,從而影響響應時間。如果要模擬大量併發用戶,可以使用多臺Jmeter測試機。
文章來源http://www.pathbreak.com/blog/simulating-browsers-using-jmeter,翻譯如有不當,敬請諒解。