弱网测试工具—— clumsy

article/2025/10/6 22:30:02

clumsy 能在 Windows 平台下人工造成不稳定的网络状况,方便你调试应用程序在极端网络状况下的表现。

简介

利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时的将系统接收和发出的网络数据包拦截下来,人工的造成延迟,掉包和篡改操作后再进行发送。无论你是要重现网络异常造成的程序错误,还是评估你的应用程序在不良网络状况下的表现,clumsy 都能让你在不需要额外添加代码的情况下,在系统层次帮你达到想要的效果:

特色

  • 下载即用,不需要安装任何东西。
  • 不需要额外设置,不需要修改你的程序的代码。
  • 系统级别的网络控制,可以适用于命令行,图形界面等任何 Windows 应用程序。
  • 不仅仅只支持 HTTP,任何 TCP, UDP 的网络连接都可以被处理。
  • 支持本地调试(服务器和客户端都在 localhost)
  • “热插拔”,你的程序可以一直运行,而 clumsy 可以随时开启和关闭。
  • 实时调节各种参数,详细控制网络情况。

实例

下面的动画展示了 clumsy 作用于一个本地的基于 netcat 的 UDP 服务器/客户端的情况。仔细观察你可以看到数据根据在 clumsy 的影响下产生了相应的变化。如果你基本知道了 clumsy 是干什么用的,不妨到下载页面选择适用于你系统的版本进行下载。

详细信息

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

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

  1. 延迟(Lag),把数据包缓存一段时间后再发出,这样能够模拟网络延迟的状况。
  2. 掉包(Drop),随机丢弃一些数据。
  3. 节流(Throttle),把一小段时间内的数据拦截下来后再在之后的同一时间一同发出去。
  4. 重发(Duplicate),随机复制一些数据并与其本身一同发送。
  5. 乱序(Out of order),打乱数据包发送的顺序。
  6. 篡改(Tamper),随机修改小部分的包裹内容。

尽管当前宽带网络连接十分普及,但网络传输其本身在本质上总不是稳定的。如果你的应用程序中没有应对各种情况的处理,那么有可能一个丢失的 UDP 包裹都会让你的程序崩溃。正确的调试这类行为 显然需要再代码结构上进行仔细的设计和处理,还会很花功夫。而且在某些封装紧密的开发环境(Unity3D 自带的网络库可能是一个例子)下会更麻烦。clumsy 以尽可能减轻程序员负担为目标, 希望提供一个简单方便(但并不完美)的解决方案。

如何使用

首先请根据你系统的版本(32位或64位)下载 clumsy 最新版本。注意如果你安装的是64位的系统那么一定要下载64位的 clumsy。另一件重要的事实 clumsy 需要管理员权限才能正常工作。双击打开 clumsy 的话会弹出 UAC 对话框。如果没有的话请右键点击 clumsy.exe 选择"以管理员身份运行"。如果一切正常,你应该能看到如下图的界面:

根据上图中的数字图标顺序:

  1. Filter。详细的 filter 语法在下一部分有仔细的讲解。但是简单的讲它跟你常见的编程语言中的 if 中的条件写法几乎一样。数据包将根据这个标准被拦截。
  2. 预设 Filte。这里提供了一系列内置的预设 Filter 供你使用。你可以通过参考他们来写你自己需要的 Filter,也可以把你发现常用的 filter 写到 clumsy.exe 所在文件夹下的 config.txt 中。
  3. 开始/结束 按钮。点击此按钮 clumsy 就会开始捕捉数据包。在某些情况下,比如提供的 filter 语法有问题 clumsy 无法正常开始工作。请参考底部的提示进行操作。如果一切正常按钮上的文字会变为 “Stop”,按下就会停止捕捉包裹,系统网络会恢复正常。按钮左边有一个小图标,每当数据包被捕获的时候它会变绿,当包裹重新注入失败的时候它会变红色。这时你应该考虑是否遇到了上面限制中提到的问题。另外需要提到的是开启和结束可以随时进行并实时生效。
  4. 功能控制。勾选功能对应的选框来开启对应的功能。每个功能左边也有一个小图标,其起作用的时候就会变绿。在数据包捕获开启的状态下,你可以实时开启/关闭任何功能,它们都会即时生效。
  5. 参数控制。对每个功能,都附有对应的参数控制控件让你进行详细的配置。其中最常见的有:
  6. Inbound/Outbound: 是否处理输入/输出数据包。这里在 filter 的控制之外额外提供一个选择的机会,并且也可以在实时生效。
  7. Chance: 功能生效的概率。显然你需要把它们设置在一个合理的范围内才不会让网络在可以接受的范围内劣化。
  8. 状态。显示 clumsy 当前状态的帮助信息。

手机如何模拟弱网:

电脑上设置好网络后,如果是笔记本,可以直接开个WIFI手机连;如果是PC,可以买个小米WIFI或360WIFI,然后手机连接。这样手机的网就和电脑上一样了。

学习资源分享

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

这些资料,对于想自学【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助,加入下方我的交流群免费获取!


http://chatgpt.dhexx.cn/article/XETqKY0T.shtml

相关文章

ClickOnce是什么?如何使用?

ClickOnce是一种部署方式,主要解决C/S软件版本更新后,所有客户端都要重新安装的问题。 场景:假如,你的客户有1000个,你的服务端更新后,这1000个客户都要重新安装,难道要员工一个一个的电话通知客…

@click与V-on:click

问题:为什么click是V-on:click的简写,两个效果却不同,click不能打印触发的事件? 原因:语法糖 链接:https://segmentfault.com/a/1190000010159725

VB.net小技巧——ClickOnce应用程序版本号自动递增

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 VB.net小技巧——ClickOnce应用程序版本号自动递增 ClickOnce应用程序每次在更新版本的时候,我都会在主窗口的标题添加当前版本号,但是因为每次都要手…

js中click()与onclick()的区别

由一个简单示例到 js中click()与onclick()的区别 之前朋友在学习js的时候遇到一个有意思的问题。 先贴一份代码说一下代码构成 这里是html结构 <ul><li><input type"checkbox" name"" id"" class"che" checked />全…

click和on click区别

click和onclick的区别 onclick是绑定事件&#xff0c;告诉浏览器在鼠标点击时候要做什么&#xff1b;click本身是方法&#xff0c;作用是触发onclick事件&#xff0c;只要执行了元素的click()方法&#xff0c;就会触发onclick事件 click可以理解为一次简单的触发&#xff0c;…

ClickOnce发布

ClickOnce是.NET中集成的一种发布技术,它最大的好处就是可以实现自动更新。我们在开发WinForm/WPF等C/S架构的程序时需要自动更新功能,就可以通过ClickOnce快速部署实现。 一、发布设置 在VS中右键项目属性,选择发布选项卡,打开如下图的界面。 安装模式和设置区域,可以设…

.click()与on('click',function())

之前遇到过一次.click()无效,改成on绑定click就好了的情况,看了几篇博客后,发现是自己对click()和on的理解不够,没太在意,最近又遇到了,所以写下这篇博客加深印象。 $(选择器).click(fn):当选中的选择器被点击时触发回调函数fn。只针对与页面已存在的选择器。而.J_del这…

Click(点击)

Click <button id"btn" onclick"threeFn()">点我</button>点击事情方式 // 第一种 通过点击事件btn.onclick function () {alert(这是第一种点击方式);};监听点击事件 // 第二种 监听点击事件btn.addEventListener(click, function () {al…

clickonce 使用总结

1.部署 C#Winform程序如何使用ClickOnce发布并自动升级&#xff08;图解&#xff09;_shaojinbo的专栏-CSDN博客 补充 vs2015 clickOne 项目发布流程 包括自动更新 教你怎么在IIS中添加网站教你怎么在IIS中添加网站 https://jingyan.baidu.com/article/6181c3e0d45bad152e…

快速创建软件安装包-ClickOnce

大家好&#xff0c;我是沙漠尽头的狼。 .NET是免费&#xff0c;跨平台&#xff0c;开源&#xff0c;用于构建所有应用的开发人员平台。 今天介绍使用ClickOnce制作软件安装包&#xff0c;首先我们先了解什么是ClickOne。 1. 什么是ClickOnce 以下段落摘自微软文档&#xff1a…

视频教程-SharePoint 搜索教程-其他

SharePoint 搜索教程 大家好&#xff0c;我是霖雨&#xff0c;从2010年开始致力于SharePoint相关的技术研究&#xff0c;精通SharePoint环境搭建、实施、开发、运维、排错等相关技术&#xff0c;从2014年至今连续获评微软有价值讲师SharePoint方向MVP&#xff0c;在CSDN博客发表…

Office 365 轻松上手指南 - SharePoint Online (五)

2.7.2.2. 验证差旅报销工作流经验 场景一&#xff1a;部门主管拒绝申请 步骤1 用员工帐户&#xff08;demomicrosoft.com&#xff09;登录Office 365&#xff0c;然后依次点击“SharePoint”—“工作组网站”—“差旅报销”“新建项目”&#xff0c;如图&#xff1a; 步骤2 将…

SharePoint 2016 图文安装教程

安装完毕SQL Server&#xff0c;就可以开始安装SharePoint 2016 准备工具了&#xff0c;打开镜像文件&#xff0c;点击准备工具的可执行文件&#xff0c;如下图&#xff1a; 准备工具的向导&#xff0c;如下图&#xff1a; 所有准备工具&#xff0c;需要安装这么一系列软件&…

SharePoint Online 列表modern UI手把手教程如何使用及问题

目录 快速上手 目前问题 快速上手 默认界面 默认的Modern UI在双击单个条目后会自动出现在右边&#xff0c; 自定义界面&#xff08;Power Apps&#xff09; 在列表上方点击PowerApps会出现下拉菜单&#xff0c;点击自定义表单即可进入PowerApps界面自定义 目前问题 HTML…

Collabion Charts for SharePoint教程一:添加Web Parts

2019独角兽企业重金招聘Python工程师标准>>> 安装Collabion Charts for SharePoint之后&#xff0c;我们需要创建Web Parts启动Collabion Charts wizard并创建图表。下面我们就使用Collabion Charts for SharePoint添加Web Part。 添加Collabion Charts for SharePo…

SharePoint 2016 开发教程-杨建宇-专题视频课程

SharePoint 2016 开发教程—4213人已学习 课程介绍 此系列课程以SharePoint 2016为基础&#xff0c;介绍各种开发模型和对象的使用&#xff0c;通过一个个例子介绍如何使用vs深入开发SharePoint项目&#xff0c;和开发过程中常见的问题等。同时&#xff0c;这些开发模型也适…

SharePoint Framework开发基础教程

SharePoint Framework开发基础教程—170人已学习 课程介绍 SharePoint Framework是微软推出的针对SharePoint的前端开发框架&#xff0c;本课程将详细讲解使用SharePoint Framework (SPFx) 来开发客户端webpart&#xff0c;页面扩展&#xff0c;字段扩展&#xff0c;命…

SharePoint 2019 图文安装教程

前言 SharePoint 2019刚刚发布&#xff0c;很多群友在寻找安装教程&#xff0c;霖雨正好也下载了进行体验&#xff0c;就把完整的安装过程做成图文教程&#xff0c;分享给大家了&#xff0c;有需要的人可以有个参考。 文章从创建虚拟机开始&#xff0c;可能有点啰嗦&#xff0c…

Rclone挂载SharePoint

简介 众所都知&#xff0c;rclone是一款很实用的工具&#xff0c;大多用来挂载OneDrive、Google Drive、Google Drive Team、Webdav等等。 翻阅网上的相关内容&#xff0c;似乎鲜有相关挂载SharePoint的教程&#xff0c;今天勿埋我心在此为读者简单介绍一下。 今天主要介绍的…

[SharePoint教程系列]安装之后的常见操作 如何打开管理中心

SharePoint 2016安装之后之常见操作 在这篇文章里&#xff0c;主要写几个SharePoint 2016安装好了之后可以从哪里开始入手。 很多用户&#xff0c;特别是刚开始接触SharePoint的用户&#xff0c;按照步骤安装好SharePoint 环境之后&#xff0c;就不知道要做什么了。 作为管理…