首页 > 其他分享 >弱网罗测试工具clumsy

弱网罗测试工具clumsy

时间:2024-03-01 16:37:30浏览次数:29  
标签:功能 网罗 可以 网络 filter clumsy 测试工具 数据包

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://jagt.github.io/clumsy/cn/download.html

标签:功能,网罗,可以,网络,filter,clumsy,测试工具,数据包
From: https://www.cnblogs.com/R-bear/p/18047372

相关文章

  • 弱网模拟工具Clumsy
    Clumsy是基于C语言开发的一款开源网络模拟工具。它能在Windows平台下人工造成不稳定的网络状态,应用它可以方便调试应用程序在极端网络状态下的表现。一、下载安装软件下载地址:http://jagt.github.io/clumsy/cn/download首先请根据你系统的版本(32位或64位)下载clumsy最新版本......
  • 软件性能测试工具RunnerGo安装步骤
    现在安装RunnerGo仅需要一条命令!目前支持系统:Centos、Debian、Ubuntu三种。下面给大家介绍一下RunnerGo安装使用流程:Step1:复制以下命令wget https://img.cdn.apipost.cn/running_go/img/wiki/runnergo.tar&&tarxf runnergo.tar  &&bashinstall.shStep2:选择安装系统......
  • 接口管理怎么做,软件接口测试工具推荐
    1.背景作为互联网工作者,不论是前端、后端还是测试,接口管理都是一个重要的任务。通常情况下,我们需要依赖以下解决方案来完成整个接口管理过程:使用Swagger管理API文档使用Postman调试API使用RAP或其他MockAPI工具使用JMeter进行API自动化测试可以看出,每个步骤......
  • 盘点几款好用的测试工具
    俗话说,工欲善其事必先利其器。要做出高效的测试当然离不开工具,有了工具如鱼得水。下面介绍几款好用的软件测试常用的工具:1.Loadrunner——性能测试工具:是一种预测系统行为和性能的[负载]测试工具。通过模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunn......
  • 这五个软件测试工具,测试工程师必备
    在软件开发过程中,软件测试是确保软件质量和稳定性的关键环节。为了帮助开发人员和测试团队更好地完成这一任务,市面上涌现出众多软件测试工具。本文将盘点五个备受推崇的软件测试工具,它们各具特色,适用于不同的测试场景。TestRail:TestRail是一个功能强大的测试用例管理工具,它提供......
  • 【性能测试】性能测试工具LoadRunner,参数化关联。全md文档笔记(已分享文档代码)
    本系列文章md笔记(已分享)主要讨论性能测试相关知识。入门阶段:认识性能测试分类-(负载测试、压力测试、并发测试、稳定性测试),常用性能测试指标-(吞吐量、并发数、响应时间、点击数...),性能测试工具选择。性能脚本:1.LoadRunner介绍,2.脚本录制、运行、参数化,3.关联、检查点、事务......
  • 常用的MODBUS协议测试工具推荐
    介绍一些常用的MODBUS测试工具。1、ModscanModscan是一款免费的MODBUS测试工具,支持ModbusRTU和TCP和ASCII协议。它可以进行单点和多点的读写操作,并且可以生成MODBUS协议相关的报告。还支持模拟器模式,使用户可以通过虚拟设备对ModBus进行测试。2、CASModbusS......
  • 渗透测试工具
     渗透测试工具是用于评估网络、系统或应用程序安全性的软件工具,它们可以帮助识别潜在的安全漏洞。这些工具范围广泛,包括网络扫描器、漏洞评估工具、密码破解工具和应用程序分析工具等。下面是一些常用的渗透测试工具:BurpSuite:一个用于测试Web应用程序安全性的工具套件,包括爬......
  • 用python写一个并发测试工具
    工作中会有一些需要并发测试的场景,例如:两人同时操作一条数据,此时需要验证结果是否符合预期 最初是借助jmeter来进行并发测试,建2个线程组,每个线程组中各放一个接口,启动时会同时执行个线程组中的接口,从而实现并发测试的目的但是每次都要打开jmeter,用起来不太方便,所以就尝试用pyt......
  • jacoco覆盖率测试工具
    简介jacoco是一个能跑覆盖率的工具,可以把覆盖率结果生成报告,和IDEA自带的覆盖率测试工具类似,eclipse是没有自带覆盖率测试功能的,jacoco可以在maven执行test周期的时候生成数据,可以作为eclipse覆盖率测试工具,jacoco生成的报告可以和sonaqube,jenkin,gitlab等工具联动,实现代码门禁的......