模拟常见异常网络场景

一般常见的网络场景有:网络闪断闪连、弱网、无网络和网络吊死等,在实际测试过程中,我们常常要模拟上述环境,以便验证软件在上述环境中的可靠性。

1.模拟网络闪断闪连

我们可以借助DOS命令netsh实现该场景,具体批处理命令如下:

@echo off--------不显示被执行的命令,只显示命令执行结果

for /l %%a in (1,1,5) do (---------循环禁用和启用网卡,可以通过设置循环次数实现一段时间内网络闪断闪连

echo 禁用网卡

netsh interface set interface "本地连接" admin=disabled-----------禁用网卡的DOS命令,本地连接为网卡名称

echo Wscript.sleep 500 >y.vbs---------------------创建一个脚本文件,作用是实现延时效果,此处设置为500毫秒,类似于sleep函数

call y.vbs &del y.vbs-------------------调用脚本,开始延时,执行完毕后删除脚本

echo 启用网卡

netsh interface set interface "本地连接" admin=enabled----------------------------启用网卡dos命令

echo Wscript.sleep 5000 >y.vbs---------------延时5s,等待网络正常连接

call y.vbs &del y.vbs

echo 启用网卡结束

)

pause--------------------确保dos窗口执行完毕后,不自动关闭

PS:如果IP地址是动态获取,还可以通过ipconfig /release和ipconfig /renew两个命令实现闪断闪连,前者表示释放当前ip,后者表示重新获取ip。

2.模拟弱网环境

方式1使用fiddler模拟弱网

在主页菜单栏,选择rules--customize rules


修改上述图片红框内的数值,oSession["request-trickle-delay"] = 300,指fiddler上传1kb数据需要300毫秒,即每秒传3kb。oSession["response-trickle-delay"] = 150,指fiddler下载1kb需要150毫秒。然后在菜单栏选择rules--performance--simulate modem speeds(每次修改上传、下载时间后,都必须要重新勾选此项,因为每次修改后该项会被重置清空)。弱网环境模拟完毕,后续可以通过调整上传下载时间,控制请求和响应的时间,以达到模拟不同网络的效果。

PS:fiddler还可以模拟简单的并发操作,右击目标请求,然后点击右键菜单replay--reissue sequentially,弹出下图:


在上图的数值5,表示fiddler会同时发5次被选择的请求到服务器。

方式2 通过Charles模拟

在菜单栏选择proxy--throttle settings,弹出如下窗口:


勾选enable throttling启用限速功能,然后添加一台你想限速的主机。bandwidth项是控制上传和下载的速率,单位是kb/s。上述数值表示,请求和响应到Charles侧时,它每秒下载57kb,上传33.6kb。根据实际情况修改上述两个数值,可以模拟不同的网络情况。

PS:Charles可以实现简单并发操作,步骤如下:

右击目标请求,在右键菜单选择repeat advanced,弹出如下窗口:


iterations表示循环次数,concurrency表示每次循环的请求并发数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容