1.簡介
在實際工作中,網路頻寬一定不會是持續穩定的保持某一個值,而是有高有低。因此為了測試場景和實際能夠無限的接近,所以我們需要模擬一下來達到效果。還有就是在實際的測試工作中,會因為業務需要,有時限網速,更加符合實際,所以我們也需要模擬弱網進行測試。
2.檢視官網文件
參考官網文件:cps屬性為了模擬低網速,如下圖所示:
3.準備工作
為了測試出真實的響應時間情況,用jmeter模擬弱網進行工作,我們需要修改一下jmeter的配置。就是修改jmeter.properties檔案。在安裝jmeter目錄找到apache-jmeter-5.0/bin/jmeter.properties檔案,找到引數,分別為限制http以及https
這些分別用於HTTP
和HTTPS協議,該屬性預設為零,這意味著沒有限制。首字母縮寫cps
代表“每秒字元數”。當您將屬性設定為零以上時,頻寬將根據您的設定進行調節。
#httpclient.socket.http.cps=0
#httpclient.socket.https.cps=0
如圖所示:
4.cps的計算邏輯
檢視jmeter的JMeter Wiki 在其中可以找到cps的計算邏輯,你也可以直接訪問:https://cwiki.apache.org/confluence/display/JMETER/Controlling+Bandwidth+in+JMeter+to+simulate+different+networks 來檢視jmeter模擬不同頻寬
從上圖紅色圈住的部分我們很容易知道cps的計算邏輯:cps = (target bandwidth in kbps * 1024) / 8,所以cps=B/s的速率。
5.網路頻寬的換算
1、網路速率
100Mbps=100Mbit/s即兆位元每秒
100MB/s=100MBytes/s即兆位元組每秒
1B=8bit
100Mbps=12.5MB/s,理論上平常的百兆頻寬下載速率可以達到12.5MB/s 100MB/s=1001024KB/s=1001024*1024B/s
2、資料儲存對於資料硬碟之類的儲存換算比較不同,資料儲存是以10進製表示,1MB=1000KB
6.實戰模擬弱網
1、jmeter分別配置不同的cps測試響應時間的變化,
Jmeter簡單建立一個訪問度孃的測試指令碼,如下圖所示:
2、為了避免資料量小不具有代表性,影響測試結果,巨集哥這裡將執行緒組設定成了100,預設情況下該介面,測試結果(平均時間0.153s),如下圖所示:
3、響應時間很小,設定cps=40KB/s=40*1024B/s=40960,檢視網路延遲情況
4、修改配置後,執行jmeter(平均時間0.307s)。可以看到平均網路延遲了0.154s,如下圖所示:
通過這樣的設定方法,Jmeter就可以做到弱網測試。
7.小結
巨集哥簡單的例舉幾個弱網測試工具:Fiddler、Clumsy。Clumsy是基於C語言開發的一款開源網路模擬工具。它能在Windows平臺下人工造成不穩定的網路狀態,應用它可以方便除錯應用程式在極端網路狀態下的表現。