弱网测试
背景
公司有个产品,提供音视频服务。需要测试下弱网环境下的使用情况。
本来打算使用fiddler、charles或者浏览器F12自带的网络显示进行弱网测试,但是实际使用过程中,发现这些工具只能限制http协议的速度,而公司音视频走的是ws,没有被限制到
且Fiddler弱网模式,模拟弱网的时候,只是均匀的慢,但是实际场景可能是网络会波动的。
根据 polqa mos 需要有时延等情况。https://www.smiletoyou.cn/?p=245
工具-clumsy
利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包和篡改操作后再进行发送。无论你是要重现网络异常造成的程序错误,还是评估你的应用程序在不良网络状况下的表现,clumsy 都能让你在不需要额外添加代码的情况下,在系统层次帮你达到想要的效果。
不需要额外设置,不需要修改你的程序的代码。
不仅仅只支持 HTTP,任何 TCP, UDP 的网络连接都可以被处理。
支持本地调试(服务器和客户端都在 localhost)
"热插拔",你的程序可以一直运行,而 clumsy 可以随时开启和关闭。
实时调节各种参数,详细控制网络情况。
详细信息clumsy 首先根据用户选择的 filter 来拦截指定的网络数据。在 filter 中可以设定你感兴趣的协议(tcp/udp),端口号,是接收还是发出的端口。你也可以通过简单的逻辑语句来进一步缩小范围。当 clumsy 被激活时,只有符合这些标准的网络数据会被进行处理,而你不感兴趣的数据仍然会由系统正常传输。
当被 filter 的网络数据包被拦截后,你可以选择 clumsy 提供的功能来有目的性的调整网络情况:
使用介绍
1、 解压clumsy-0.2-win64.zip
2、 打开clumsy.exe(如果要给手机设置网络波动,则需要先打开代理,如fiddler)
3、 presets选择 all sending packets
4、 设置拦截
Lag:延迟,把请求缓存一段时间再发出,可以用来模拟网络延迟,最大3000ms;
Drop:丢包,随机丢弃一些请求;
Throttle:节流,把一小段时间内的请求拦截下来,再在同一时间发出去;
Duplicate:重发,随机复制一些请求,与原请求一起发送;
Out of order:乱序,打乱请求的发送顺序;
Tamper:篡改,随机修改小部分请求的内容;
5、 点击start开始,对应指标前面出现绿点,表示该项拦截生效
6、 点击stop停止
。。。待继续更新