教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

軟件測試之網(wǎng)絡(luò)異常模擬測試方法

更新時(shí)間:2018年03月30日15時(shí)37分 來源:傳智播客 瀏覽次數(shù):

一、網(wǎng)絡(luò)異常的分類

在系統(tǒng)的運(yùn)行過程中,可能會遇到各種各樣的網(wǎng)絡(luò)問題,其中主要可能出現(xiàn)的問題有以下幾種:

1網(wǎng)絡(luò)延遲:當(dāng)網(wǎng)絡(luò)信息流過大時(shí),可能導(dǎo)致設(shè)備反應(yīng)緩慢,造成數(shù)據(jù)傳輸延遲;

2網(wǎng)路掉包:網(wǎng)路掉包是在數(shù)據(jù)傳輸?shù)倪^程中,數(shù)據(jù)包由于各種原因在信道中丟失的現(xiàn)象;

3網(wǎng)絡(luò)節(jié)流:當(dāng)數(shù)據(jù)傳輸量達(dá)到網(wǎng)絡(luò)帶寬上限時(shí),數(shù)據(jù)包可能會被設(shè)備攔截下來在之后發(fā)出;

4網(wǎng)絡(luò)重發(fā):當(dāng)網(wǎng)絡(luò)不穩(wěn)定是可能會導(dǎo)致發(fā)送端判斷數(shù)據(jù)包丟失導(dǎo)致部分?jǐn)?shù)據(jù)包重發(fā);

5數(shù)據(jù)亂序:當(dāng)數(shù)據(jù)傳輸有可能出現(xiàn)數(shù)據(jù)包到達(dá)接收端時(shí)間不一致,導(dǎo)致數(shù)據(jù)包亂序問題;

6數(shù)據(jù)篡改:數(shù)據(jù)傳輸?shù)倪^程中可能出現(xiàn)數(shù)據(jù)被連接篡改的情況。

二、Windows下網(wǎng)絡(luò)異常的模擬方法

Windows下可使用clumsy來進(jìn)行網(wǎng)絡(luò)異常的模擬

clumsy 首先根據(jù)用戶選擇的 filter 來攔截指定的網(wǎng)絡(luò)數(shù)據(jù)。在 filter 中可以設(shè)定你感興趣的協(xié)議(tcp/udp),端口號,是接收還是發(fā)出的端口。你也可以通過簡單的邏輯語句來進(jìn)一步縮小范圍。當(dāng) clumsy 被激活時(shí),只有符合這些標(biāo)準(zhǔn)的網(wǎng)絡(luò)數(shù)據(jù)會被進(jìn)行處理,而你不感興趣的數(shù)據(jù)仍然會由系統(tǒng)正常傳輸。

當(dāng)被 filter 的網(wǎng)絡(luò)數(shù)據(jù)包被攔截后,你可以選擇clumsy 提供的功能來有目的性的調(diào)整網(wǎng)絡(luò)情況:

l 延遲(Lag),把數(shù)據(jù)包緩存一段時(shí)間后再發(fā)出,這樣能夠模擬網(wǎng)絡(luò)延遲的狀況。

l 掉包(Drop),隨機(jī)丟棄一些數(shù)據(jù)。

l 節(jié)流(Throttle),把一小段時(shí)間內(nèi)的數(shù)據(jù)攔截下來后再在之后的同一時(shí)間一同發(fā)出去。

l 重發(fā)(Duplicate),隨機(jī)復(fù)制一些數(shù)據(jù)并與其本身一同發(fā)送。

l 亂序(Out of order),打亂數(shù)據(jù)包發(fā)送的順序。

l 篡改(Tamper),隨機(jī)修改小部分的包裹內(nèi)容。

在測試時(shí),該工具的filtering使用默認(rèn)即可,Presets選擇localhost ipv4 all,然后配置相應(yīng)的功能單擊start按鈕,等待按鈕變成stop以及按鈕旁邊出現(xiàn)小綠點(diǎn)時(shí),工具則啟用成功。

使用工具模擬網(wǎng)路延時(shí),網(wǎng)絡(luò)延時(shí)3000ms

使用工具模擬網(wǎng)絡(luò)掉包,隨機(jī)將10%的數(shù)據(jù)包丟棄

使用工具模擬網(wǎng)絡(luò)節(jié)流,將10%的數(shù)據(jù)節(jié)流1000ms

使用工具模擬網(wǎng)絡(luò)重發(fā),將10%的數(shù)據(jù)集重發(fā)兩次

使用工具模擬網(wǎng)絡(luò)亂序,將10%的數(shù)據(jù)亂序

使用工具模擬網(wǎng)絡(luò)篡改,篡改10%的數(shù)據(jù)

測試的過程中可以檢查業(yè)務(wù)處理是否正確,比如檢查數(shù)據(jù)庫數(shù)據(jù)是否正確,數(shù)據(jù)庫與文件庫是否一致,文件庫是否出現(xiàn)較多的垃圾文件,垃圾文件是否有清理機(jī)制等。

三、Linux下的網(wǎng)絡(luò)異常模擬方法

netem 是Linux 2.6 及以上內(nèi)核版本提供的一個(gè)網(wǎng)絡(luò)模擬功能模塊。該功能模塊可以用來在性能良好的局域網(wǎng)中,模擬出復(fù)雜的互聯(lián)網(wǎng)傳輸性能,諸如低帶寬、傳輸延遲、丟包等等情況。使用 Linux 2.6 (或以上) 版本內(nèi)核的很多發(fā)行版 Linux 都開啟了該內(nèi)核功能,比如 Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian 等等。 tc 是Linux系統(tǒng)中的一個(gè)工具,全名為 traffic control(流量控制)。tc 可以用來控制 netem 的工作模式,也就是說,如果想使用 netem ,需要至少兩個(gè)條件,一個(gè)是內(nèi)核中的 netem 功能被包含,另一個(gè)是要有 tc 。

模擬網(wǎng)絡(luò)異常方法:

1、首先查看網(wǎng)卡,可使用ifconfig命令查看

[root@localhostnetwork-s]# ifconfig

eno16777736: flags=4163 mtu 1500

inet 192.168.75.132 netmask 255.255.255.0 broadcast 192.168.75.255

inet6fe80::20c:29ff:fe7c:8d22 prefixlen 64 scopeid 0x20

ether 00:0c:29:7c:8d:22 txqueuelen 1000 (Ethernet)

RX packets 19535 bytes2592045 (2.4 MiB)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 31019 bytes38969412 (37.1 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

紅字表明的就是網(wǎng)卡的設(shè)備號

2、模擬網(wǎng)絡(luò)異??赏ㄟ^以下命令,其中eth0可根據(jù)自己的網(wǎng)卡設(shè)備號進(jìn)行替換:

1)網(wǎng)絡(luò)延遲

tc qdisc add dev eth0 rootnetem delay 100ms

該命令將 eth0 網(wǎng)卡的傳輸設(shè)置為延遲 100 毫秒發(fā)送。

模擬更真實(shí)的情況,延遲值可能會有一定的波動性,可以使用以下命令來模擬

Tc qdisc add dev eth0 root netem delay 100ms 10ms

該命令將 eth0 網(wǎng)卡的傳輸設(shè)置為延遲 100ms ± 10ms (90 ~ 110 ms 之間的任意值)發(fā)送

2)網(wǎng)絡(luò)丟包

tc qdisc add dev eth0 root netem loss 1%

該命令將 eth0 網(wǎng)卡的傳輸設(shè)置為隨機(jī)丟掉 1% 的數(shù)據(jù)包。

3)數(shù)據(jù)包重復(fù)

tc qdisc add dev eth0 root netem duplicate 1%

該命令將 eth0 網(wǎng)卡的傳輸設(shè)置為隨機(jī)產(chǎn)生 1% 的重復(fù)數(shù)據(jù)包 。

4)數(shù)據(jù)包損壞

tc qdisc add dev eth0 root netem corrupt 0.2%

該命令將 eth0 網(wǎng)卡的傳輸設(shè)置為隨機(jī)產(chǎn)生 0.2% 的損壞的數(shù)據(jù)包 。

5)數(shù)據(jù)包亂序

tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50%

該命令將 eth0 網(wǎng)卡的傳輸設(shè)置為:有 25% 的數(shù)據(jù)包(50%相關(guān))會被立即發(fā)送,其他的延遲10 秒。

查看已經(jīng)配置的網(wǎng)絡(luò)條件

tc qdisc show dev eth0

如果需要?jiǎng)h除已配置的條件,則將以上命令中的add更改為del即可。

本文版權(quán)歸傳智播客軟件測試學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
 
作者:傳智播客軟件測試培訓(xùn)學(xué)院
 
首發(fā):http://test.itcast.cn/

0 分享到:
和我們在線交談!