一般常見的網(wǎng)絡(luò)場景有:網(wǎng)絡(luò)閃斷閃連抡四、弱網(wǎng)柜蜈、無網(wǎng)絡(luò)和網(wǎng)絡(luò)吊死等,在實(shí)際測試過程中指巡,我們常常要模擬上述環(huán)境淑履,以便驗(yàn)證軟件在上述環(huán)境中的可靠性。
1.模擬網(wǎng)絡(luò)閃斷閃連
我們可以借助DOS命令netsh實(shí)現(xiàn)該場景藻雪,具體批處理命令如下:
@echo off--------不顯示被執(zhí)行的命令秘噪,只顯示命令執(zhí)行結(jié)果
for /l %%a in (1,1,5) do (---------循環(huán)禁用和啟用網(wǎng)卡,可以通過設(shè)置循環(huán)次數(shù)實(shí)現(xiàn)一段時(shí)間內(nèi)網(wǎng)絡(luò)閃斷閃連
echo 禁用網(wǎng)卡
netsh interface set interface "本地連接" admin=disabled-----------禁用網(wǎng)卡的DOS命令勉耀,本地連接為網(wǎng)卡名稱
echo Wscript.sleep 500 >y.vbs---------------------創(chuàng)建一個(gè)腳本文件指煎,作用是實(shí)現(xiàn)延時(shí)效果蹋偏,此處設(shè)置為500毫秒,類似于sleep函數(shù)
call y.vbs &del y.vbs-------------------調(diào)用腳本至壤,開始延時(shí)威始,執(zhí)行完畢后刪除腳本
echo 啟用網(wǎng)卡
netsh interface set interface "本地連接" admin=enabled----------------------------啟用網(wǎng)卡dos命令
echo Wscript.sleep 5000 >y.vbs---------------延時(shí)5s,等待網(wǎng)絡(luò)正常連接
call y.vbs &del y.vbs
echo 啟用網(wǎng)卡結(jié)束
)
pause--------------------確保dos窗口執(zhí)行完畢后像街,不自動關(guān)閉
PS:如果IP地址是動態(tài)獲取黎棠,還可以通過ipconfig /release和ipconfig /renew兩個(gè)命令實(shí)現(xiàn)閃斷閃連,前者表示釋放當(dāng)前ip镰绎,后者表示重新獲取ip脓斩。
2.模擬弱網(wǎng)環(huán)境
方式1使用fiddler模擬弱網(wǎng)
在主頁菜單欄,選擇rules--customize rules
修改上述圖片紅框內(nèi)的數(shù)值畴栖,oSession["request-trickle-delay"] = 300俭厚,指fiddler上傳1kb數(shù)據(jù)需要300毫秒,即每秒傳3kb驶臊。oSession["response-trickle-delay"] = 150,指fiddler下載1kb需要150毫秒叼丑。然后在菜單欄選擇rules--performance--simulate modem speeds(每次修改上傳关翎、下載時(shí)間后,都必須要重新勾選此項(xiàng)鸠信,因?yàn)槊看涡薷暮笤擁?xiàng)會被重置清空)纵寝。弱網(wǎng)環(huán)境模擬完畢,后續(xù)可以通過調(diào)整上傳下載時(shí)間星立,控制請求和響應(yīng)的時(shí)間爽茴,以達(dá)到模擬不同網(wǎng)絡(luò)的效果。
PS:fiddler還可以模擬簡單的并發(fā)操作绰垂,右擊目標(biāo)請求室奏,然后點(diǎn)擊右鍵菜單replay--reissue sequentially,彈出下圖:
在上圖的數(shù)值5劲装,表示fiddler會同時(shí)發(fā)5次被選擇的請求到服務(wù)器胧沫。
方式2 通過Charles模擬
在菜單欄選擇proxy--throttle settings,彈出如下窗口:
勾選enable throttling啟用限速功能占业,然后添加一臺你想限速的主機(jī)绒怨。bandwidth項(xiàng)是控制上傳和下載的速率,單位是kb/s谦疾。上述數(shù)值表示南蹂,請求和響應(yīng)到Charles側(cè)時(shí),它每秒下載57kb念恍,上傳33.6kb六剥。根據(jù)實(shí)際情況修改上述兩個(gè)數(shù)值晚顷,可以模擬不同的網(wǎng)絡(luò)情況。
PS:Charles可以實(shí)現(xiàn)簡單并發(fā)操作仗考,步驟如下:
右擊目標(biāo)請求音同,在右鍵菜單選擇repeat advanced,彈出如下窗口:
iterations表示循環(huán)次數(shù)秃嗜,concurrency表示每次循環(huán)的請求并發(fā)數(shù)权均。