美文网首页
网络异常模拟测试方法

网络异常模拟测试方法

作者: 米饭超人 | 来源:发表于2017-11-08 10:45 被阅读78次

1.网络异常的分类

在系统的运行过程中,可能会遇到各种各样的网络问题,其中主要可能出现的问题有

网络延迟:当网络信息流过大时,可能导致设备反应缓慢,造成数据传输延迟;

网路掉包:网路掉包是在数据传输的过程中,数据包由于各种原因在信道中丢失的现象;

网络节流:当数据传输量达到网络带宽上限时,数据包可能会被设备拦截下来在之后发出;

网络重发:当网络不稳定是可能会导致发送端判断数据包丢失导致部分数据包重发;

数据乱序:当数据传输有可能出现数据包到达接收端时间不一致,导致数据包乱序问题;

数据篡改:数据传输的过程中可能出现数据被连接篡改的情况。

2.Windows下网络异常的模拟方法

Windows下可以使用clumsy来进行网络异常的模拟

clumsy 首先根据用户选择的 filter 来拦截指定的网络数据。在 filter 中可以设定你感兴趣的协议(tcp/udp),端口号,是接收还是发出的端口。你也可以通过简单的逻辑语句来进一步缩小范围。当 clumsy 被激活时,只有符合这些标准的网络数据会被进行处理,而你不感兴趣的数据仍然会由系统正常传输。

当被 filter 的网络数据包被拦截后,你可以选择clumsy 提供的功能来有目的性的调整网络情况:

延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况。

掉包(Drop),随机丢弃一些数据。

节流(Throttle),把一小段时间内的数据拦截下来后再在之后的同一时间一同发出去。

重发(Duplicate),随机复制一些数据并与其本身一同发送。

乱序(Out of order),打乱数据包发送的顺序。

篡改(Tamper),随机修改小部分的包裹内容。

在测试时,该工具的filtering使用默认即可,Presets选择localhost ipv4 all,然后配置相应的功能单击start按钮,等待按钮变成stop以及按钮旁边出现小绿点时,工具则启用成功。

使用工具模拟网路延时,网络延时3000ms


使用工具模拟网络掉包,随机将10%的数据包丢弃


使用工具模拟网络节流,将10%的数据节流1000ms


使用工具模拟网络重发,将10%的数据集重发两次


使用工具模拟网络乱序,将10%的数据乱序


使用工具模拟网络篡改,篡改10%的数据


测试的过程中可以检查业务处理是否正确,比如检查数据库数据是否正确,数据库与文件库是否一致,文件库是否出现较多的垃圾文件,垃圾文件是否有清理机制等等。

3.Linux下的网络异常模拟方法

netem 是Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况。使用 Linux 2.6 (或以上) 版本内核的很多发行版 Linux 都开启了该内核功能,比如 Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian 等等。 tc 是Linux系统中的一个工具,全名为 traffic control(流量控制)。tc 可以用来控制 netem 的工作模式,也就是说,如果想使用 netem ,需要至少两个条件,一个是内核中的 netem 功能被包含,另一个是要有 tc 。

模拟网络异常方法:

1.首先查看网卡,可使用ifconfig命令查看

[root@localhostnetwork-scripts]# 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

红字表明的就是网卡的设备号

2.模拟网络异常可通过以下命令,其中eth0可根据自己的网卡设备号进行替换:

网络延迟

tc qdisc add dev eth0 rootnetem delay 100ms

该命令将 eth0 网卡的传输设置为延迟 100 毫秒发送。

模拟更真实的情况,延迟值可能会有一定的波动性,可以使用以下命令来模拟

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

该命令将 eth0 网卡的传输设置为延迟 100ms ± 10ms (90 ~ 110 ms 之间的任意值)发送

网络丢包

tc qdisc add dev eth0 root netem loss 1%

该命令将 eth0 网卡的传输设置为随机丢掉 1% 的数据包。

数据包重复

tc qdisc add dev eth0 root netem duplicate 1%

该命令将 eth0 网卡的传输设置为随机产生 1% 的重复数据包 。

数据包损坏

tc qdisc add dev eth0 root netem corrupt 0.2%

该命令将 eth0 网卡的传输设置为随机产生 0.2% 的损坏的数据包 。

数据包乱序

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

该命令将 eth0 网卡的传输设置为:有 25% 的数据包(50%相关)会被立即发送,其他的延迟10 秒。

查看已经配置的网络条件

tc qdisc show dev eth0

如果需要删除已配置的条件,则将以上命令中的add更改为del即可。

相关文章

  • 网络异常模拟测试方法

    1.网络异常的分类 在系统的运行过程中,可能会遇到各种各样的网络问题,其中主要可能出现的问题有 网络延迟:当网络信...

  • 【抓包07】利用Charles模拟慢速网络

    一、利用抓包工具 Charles 模拟慢速网络的方法 常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,a...

  • iOS测试慢速网络

    应用开发完成后,一般要经过很多测试,其中网络测试尤为重要,那么怎么模拟慢速网络呢? 方法一:用Charles 方法...

  • 单元测试纠结的问题

    1.空指针异常 when...thenReturn 模拟被测试方法调用外部资源时,参数不匹配 添加了moc...

  • 应用系统性能测试概述

    定义 指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 方法 基准测试:是一...

  • 网络异常测试

    tc命令,模拟网络异常可通过以下命令,其中eth0可根据自己的网卡设备号进行替换: 1. 网络延迟 tc qdis...

  • 流量复制 - 工具对比

    流量复制 线下的测试难以模拟真实流量, 尤其难以模拟正常流量混杂着各色异常流量;所以复制线上流量进行测试,能够覆盖...

  • 渗透测试各个阶段

    1、渗透测试:就是借助各种漏洞扫描工具,通过模拟黑客的攻击方法来对网络完全进行评估。 2、渗透测试的各个阶段:2....

  • iOS弱网测试

    本文主要介绍 APP 测试中 的专项测试- 弱网络测试 弱网络测试:模拟不同网络状态下(3G,4G,Wifi......

  • web渗透测试入门

    一、简介 1.web渗透测试概述 渗透测试:模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。 we...

网友评论

      本文标题:网络异常模拟测试方法

      本文链接:https://www.haomeiwen.com/subject/szsemxtx.html