我是测试视频会议系统在弱网环境下表现的时候,接触到clumsy的,感觉挺好用的,很方便的模拟丢包、延迟

clumsy工具介绍

clumsy 能在 Windows 平台下人工造成不稳定的网络状况,方便你调试应用程序在极端网络状况下的表现。下面根据工作中遇到过的实际场景介绍一下clumsy工具的使用方法

场景:测试客户端下载文件失败,客户端对这种异常情况做出的处理,使用clumsy工具模拟丢包场景使客户端向服务端请求下载文件失败

  1. 解压clumsy-0.3-win64.zip

(clumsy 0.3工具下载链接:https://github.com/jagt/clumsy/releases/download/0.3/clumsy-0.3-win64-a.zip)

注:这里64位的只适用于windows64位电脑,其他系统需要下载适配的版本https://github.com/jagt/clumsy/releases/tag/0.3

  1. 进入clumsy目录文件,clumsy应用程序可以直接打开使用,config.txt文件是过滤器的配置文件

如上图所示,工具分为3个区域:过滤器、预设条件和具体功能设置。过滤器:设置需要触发网络限制的规则,比如设置输入数据inbound还是输出数据outbound,设置过滤tcp协议还是udp协议,设置过滤地址等

我们可以把一些常用的测试条件,预先写到Clumsy的config.txt里面,然后在预设条件下拉框里快捷选择

  1. 我们这里要模拟客户端向服务端请求下载失败的场景,

客户端请求服务端,客户端ip是源ip,服务端的包返回给客户端,服务端的ip就是源ip,需要丢的是进来的包,那服务端ip就是源ip,服务端端口就是源端口,过滤条件填tcp.SrcPort == xxx and ip.SrcAddr == x.x.x.x,可以事先在config.txt里面配置,使用的时候直接勾选

通过丢包的方式模拟下载失败,就选择Drop,从服务端下载包失败说明是入包要丢,就勾选Inbound,Outbound出包不勾选,概率设置60%表示百分之六十的丢包率。

还有一些其他使用可以参考:http://mistyrain.com.cn/index.php/archives/58/

  1. 参数设置完成点击start,客户端再去请求下载会发现日志打印文件下载失败,查看下载的文件为0KB