參考別人網址:http://blog.csdn.net/no1mwb/article/details/53638681
弱網測試,屬於健壯性測試;怎么樣去做弱網測試呢?
一、安裝弱網測試工具-Network-Emulator-Toolkit
推薦一個工具:Network-Emulator-Toolkit,這個工具的作用主要是設置丟包率和延時;
1.安裝與卸載
下載地址:https://blog.mrpol.nl/2010/01/14/network-emulator-toolkit/
然后下載完成之后,點擊.exe文件安裝,即可;
安裝完成后,界面如下:
2、再次安裝一個共享wifi工具
下載地址:http://wifi.liebao.cn/ 獵豹wifi
以上就是進行弱網測試的前期准備工作;
二、Network-Emulator-Toolkit使用教程
基本操作步驟如下:
1、新建VirtualChannel,File->new或者 Configuration->New Channel;
2、再建一個過濾器Filter,Configuration->New Filter
設置說明:1. All Network 是指所有網絡;
2. IPV4、IPV6(本地IP(Local IP),或者遠程IP(Remote IP)及子網掩碼(IP Mask));
3.可以指定本地端口(Local Port)或遠程端口(Remote Port)大小范圍;
4.協議(Protocol),針對TCP\UDP協議;
5.可以選擇網卡適配器(Adapaters),對適配器增刪改;
3、新建連接Link,Configration->New Link
注:未配置的情況下,左右兩條線都是灰色的
4.設置UpStream和DownStream
雙擊link或者懸浮link上方鼠標右鍵,打開UpStream、DownStream;
【loss】丟包:
-
- No Loss:默認,不模擬丟包。
- Periodic loss: 模擬周期性的丟包。按填寫數量(設為x個),每x個包,就丟一個包(one packet is dropped per given number of packets)。
- Random loss: 模擬隨機丟包,按給定丟包的概率,隨機丟包。
- Burst loss: 模擬根據給定的可能性進行丟包。當發生一個丟包事件時,接着連續丟幾個包(丟包數量控制在最大(max)最小值(min)之間)。
- G-E loss: 模擬發生數據包丟失遵循Gilbert-Elliot模型,由兩個狀態組成:好的狀態和壞的狀態。可分別為這2個狀態指定數據包丟失率,同時可設置網絡傳輸在這兩種狀態的概率
(And the network transit between the two states is at given transition probabilities)
【error】數據錯誤(網絡傳輸過程中,包中一個或者多個字節出現Error)
-
- No Error 不模擬數據傳輸錯誤
- Random error:根據給定的比例,模擬隨機發生傳輸錯誤。
- G-E error:發生傳輸錯誤遵循Gilbert-Elliot Model, 模型,由兩個狀態組成:好的狀態和壞的狀態。可分別為這2個狀態指定數據包丟失率,同時可設置網絡傳輸在這兩種狀態的概率(the network transit between the two states according to given transition probabilities)
- 錯誤概率單元(Error Rate Unit):
Bit error: 設置出錯概率為每個字節出錯的概率。
Packet error: 設置出錯概率為每個包出錯的概率。

-
- 延遲來自某應用發送的數據包被另一個應用程序接收到的時間。
- Fixed delay: 按給定值,延遲固定時間(單位:毫秒)packets are delayed for a fixed amount of time.
- Uniform delay: 按統一分布,延遲一定量的時間(時間控制在最大最小值之間)
- Normal delay: 按正態分布.延遲一定量的時間(average:平均值,Devation:偏差)
- Linear delay: 延遲一定量的時間(在給定時間周期(Period)內,延遲的時間大小從最小值線性增加到最大值,當達到最大值時,又從最小值開始。
- Burst delay: 根據給定概率(Probability),延遲一定量的時間(Latency), 丟包數控制最大值和最小值之間

如果不設置隊列,則不對接到的包做任何隊列操作
Normal queue:所有接收到的包都被放入一個指定隊列大小的先進先出(First In, First Out)隊列。
Randomly Early Detection (RED) queue:所有接收到的包都被放入一個RED隊列。如果隊列大小小於 給定的最低閾值(Minimum Threshold),隊列被評估為不擁擠的,什么都不做;如果隊列大小大於給定 最大閾值(Maximum Threshold),則隊列被評估為擁擠的,根據丟包規則,丟棄一些包。
丟包規則:
Drop front: 必要時,丟棄位於隊列頭部的包。.
Drop tail: 必要時,丟棄位於隊列尾部的包。
Drop random:必要時,根據統一分布,隨機丟個包。
Queue Mode:設置隊列大小的單位,以包(Packet Mode)為單位或者以字節為單位Byte Mode
【BgTraffic】背景流->延時效果
一些網絡數據包交換和模擬的兩端沒有任何關系,被指為背景流(background traffic)。這些背景流會帶來延時效果。
Constant-bit rate (CBR) traffic: 根據給定的固定比例生成背景流(每XX kbps、mbps數據包,xx字節背景流)
Exponential traffic:根據指數On/Off時間分布生成背景流。個人理解,Burst則為生成背景流時間,Idle則不生成背景流時間(時間單位:秒
Pareto traffic: 同上,不過是排列圖分布(Pareto)
【Recorder】接收順序
模擬收到的包不是按發送順序排序的。
No Recoder:不模擬
【Disconnection】模擬周期性斷開
模擬周期性斷開連接的行為。
Connection time: 一段時間周期內,link保持連接狀態的持續時間。
Disconnection time: 一段時間周期那日,link保持斷開狀態的持續時間
Disconnection rates: link發生斷開連接的比率
例子:設置connection time為10秒,disconnection為5秒,那么周期為15秒,如果設置rate為0.4,那么平均每10秒內,有4秒是link處於連接斷開的時間(if connection time is 10 seconds, time is 5 seconds, the period will be 15 seconds. If rate is 0.4, then on average in 4 out of 10 periods disconnection occurs. )。
5、開始控制(開始按鈕)
6、停止控制(停止按鈕)
7、保存文件(導出XML,方便重用)
附錄
工具欄介紹
連接方式:
Dialup56k:通過傳輸速率為56kbps的modem進行連接
ADSL(128/512): 通過上行128kbps,下行512kbps的ADSL連接。
GPRS:它是GSM移動電話用戶可用的一種移動數據業務,理論傳輸速率115kbit/s,實際可達53.6Kbps。
CDMA2000:3G移動通訊標准。
WCDMA:寬帶碼分多址(英語:Wideband Code Division Multiple Access,常簡寫為W-CDMA),是一種3G蜂窩網絡,使用的部分協議與2G GSM標准一致。
IEEE802.11b:通過無線局域網,帶寬最高可達11Mbps,實際的工作速度在5Mb/s左右,室外為300米;在辦公環境中最長為100米
- 丟包或者延時,能夠帶來哪些危害呢?
1、丟包:丟包最常見,在TCP協議中,需要不停的發送請求,來確認連接狀態,一旦發生丟包,就需要重傳;
這個時候,就需要去測試一下 產品的處理機制,UI界面是否給出友好提示,服務端是否做了異常處理;
2、延時:由於出現了網絡波動,導致數據包在傳輸的時候出現了抖動,導致請求出現超時現象;這個時候就需要去測 試一下產品的處理機制,UI界面是否給出友好提示,服務端是否做了異常處理;