模擬常見(jiàn)異常網(wǎng)絡(luò)場(chǎng)景

一般常見(jiàn)的網(wǎng)絡(luò)場(chǎng)景有:網(wǎng)絡(luò)閃斷閃連、弱網(wǎng)、無(wú)網(wǎng)絡(luò)和網(wǎng)絡(luò)吊死等,在實(shí)際測(cè)試過(guò)程中,我們常常要模擬上述環(huán)境,以便驗(yàn)證軟件在上述環(huán)境中的可靠性。

1.模擬網(wǎng)絡(luò)閃斷閃連

我們可以借助DOS命令netsh實(shí)現(xiàn)該場(chǎng)景,具體批處理命令如下:

@echo off--------不顯示被執(zhí)行的命令,只顯示命令執(zhí)行結(jié)果

for /l %%a in (1,1,5) do (---------循環(huán)禁用和啟用網(wǎng)卡,可以通過(guò)設(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)用腳本,開(kāi)始延時(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í)行完畢后,不自動(dòng)關(guān)閉

PS:如果IP地址是動(dòng)態(tài)獲取,還可以通過(guò)ipconfig /release和ipconfig /renew兩個(gè)命令實(shí)現(xiàn)閃斷閃連,前者表示釋放當(dāng)前ip,后者表示重新獲取ip。

2.模擬弱網(wǎng)環(huán)境

方式1使用fiddler模擬弱網(wǎng)

在主頁(yè)菜單欄,選擇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)會(huì)被重置清空)。弱網(wǎng)環(huán)境模擬完畢,后續(xù)可以通過(guò)調(diào)整上傳下載時(shí)間,控制請(qǐng)求和響應(yīng)的時(shí)間,以達(dá)到模擬不同網(wǎng)絡(luò)的效果。

PS:fiddler還可以模擬簡(jiǎn)單的并發(fā)操作,右擊目標(biāo)請(qǐng)求,然后點(diǎn)擊右鍵菜單replay--reissue sequentially,彈出下圖:


在上圖的數(shù)值5,表示fiddler會(huì)同時(shí)發(fā)5次被選擇的請(qǐng)求到服務(wù)器。

方式2 通過(guò)Charles模擬

在菜單欄選擇proxy--throttle settings,彈出如下窗口:


勾選enable throttling啟用限速功能,然后添加一臺(tái)你想限速的主機(jī)。bandwidth項(xiàng)是控制上傳和下載的速率,單位是kb/s。上述數(shù)值表示,請(qǐng)求和響應(yīng)到Charles側(cè)時(shí),它每秒下載57kb,上傳33.6kb。根據(jù)實(shí)際情況修改上述兩個(gè)數(shù)值,可以模擬不同的網(wǎng)絡(luò)情況。

PS:Charles可以實(shí)現(xiàn)簡(jiǎn)單并發(fā)操作,步驟如下:

右擊目標(biāo)請(qǐng)求,在右鍵菜單選擇repeat advanced,彈出如下窗口:


iterations表示循環(huán)次數(shù),concurrency表示每次循環(huán)的請(qǐng)求并發(fā)數(shù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容