TypechoJoeTheme

Misty rain的博客

统计

弱网测试及其工具Clumsy、fiddler

2021-12-20
/
75 评论
/
3,624 阅读
/
正在检测是否收录...
12/20

Clumsy:Clumsy是基于C语言开发的一款开源网络模拟工具。它能在Windows平台下人工造成不稳定的网络状态,应用它可以方便调试应用程序在极端网络状态下的表现

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

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

填写完过滤条件后,点击start,就可以针对过滤条件范围内的数据进行网络限制了。除此以外,我们还可以利用具体功能设置,来设定特殊的限制规则,来进一步缩小测试范围。这些功能设置都是即时生效的,不需要重新stop-start。

目前对于Clumsy 0.2版本的功能有以下几种:

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

Fiddler
通过Rules-Performance-Simulate Modem Speeds来对本地网络进行限速
但遗憾的是,这种设置比较粗暴,不能更改参数。所以我们还可以通过修改配置来定义其上下行流量的数值。设置方法在Rules-Customize Rules里面,找到下图中的这两行,就可以通过简单的方式来达到网络延迟的目的了。

手机端弱网测试工具
上面介绍的是一个Windows环境的测试工具,如果在手机上测试,我们必须要把手机和PC处在同一个网络环境里才能生效。那有什么比较便捷的手机app可以直接进行网络测试?这里介绍一个腾讯的QNET工具。这个app可以从wetest上面下载,安装后启动,我们可以看到主界面还是比较简单的,分为两部分,一个是选择程序,一个是设置测试条件。

我们选择好需要测试的程序后,可以点击app里已经预设好的测试条件,点击右侧的修改按钮可以查看每项测试的具体规则。

也可以自行新增配置,设定自己的测试规则,这一点上和Clumsy是一样的。

设置好之后,点击开始测试,就会自动启动被测程序,程序界面上会有浮窗,显示QNET记录的各项测试数据,方便我们进行工作。

测试完成后,手动返回QNET,点击结束测试即可(这一点就不如wetest的性能工具方便,不能在浮窗上点击停止)。

什么是弱网测试
在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。

从测试角度来说,需要额外关注的场景就远不止断网、网络故障等情况了。对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的Wifi通常也会被纳入到弱网测试场景中。

为何要进行弱网测试
我当前所在项目的产品是一款适配于低资源环境的医疗IT系统,目前主要是在坦桑尼亚地区使用。根据资料显示,在坦桑尼亚等东非国家,普遍使用的都是2G网络,覆盖率达到40%以上,3G网络的覆盖都非常少,并且稳定性较差。由此,对于当前的App应用交付要求即至少在弱网以及无网状态下能正常运行。

如何做弱网测试
弱网环境测试主要依赖于弱网环境的模拟。环境搭建方式一般有两种:软件方式和硬件方式。软件方式的成本低,主要就是通过模拟网络参数来配置弱网环境,通常来讲可以达到测试目的.一般可通过热点共享设置。在各类网络软件中,主要就是对带宽、丢包、延时等进行模拟弱网环境。如果要求更接近弱网环境,比如现在很多的专项测试,会更倾向于通过硬件方式来协助测试,但这种方式相对会麻烦很多,一般会由网维协助搭建。当然,对于有些无法模拟的情况,只能靠人工移动到例如电梯、地铁等信号比较弱的地方。

之前也说过一些弱网测试的问题,具体测试工具如上,在强调下需要注意的几个问题场景:

用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据下载过程中、下载失败后,未进行数据回滚,中止后重新下载,出现数据重复

用户点击数据上传,数据上传过程中网络弱且不稳定,基于联网状态自动触发数据上传,导致出现数据重复写入,形成脏数据

在弱网环境下,用户输入用户名和密码点击登录,应用链接超时后,按照强网业务逻辑处理,导致返回超时异常。

在弱网环境下,用户输入用户名和密码后点击登录,数据下载超时,加载数据严重依赖于后来的异步加载。数据还没来得及返回,应用跳转到下个activity,导致崩溃。

现在,一些应用公司对弱网断网测试越来越重视,在本身APP测试项目上,占比也更多。

弱网测试主要就是对带宽、丢包、延时等进行模拟弱网环境。属于健壮性测试的内容。。想象一下,用户在地铁里,巴士上,甚至是电梯,车库等场景使用APP,我们就需要针对这些场景的弱网环境下,验证出现丢包、延时软件的处理机制,避免因用户体验不友好造成用户的流失。

黑盒弱网测试
朗读
赞(6)
版权属于:

Misty rain的博客

本文链接:

http://101.42.223.25/index.php/archives/58/(转载时请注明本文出处及文章链接)

评论 (75)
  1. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  2. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  3. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  4. 1 作者
    Windows 10 · Google Chrome

    1BBBlEnpfQO

    2022-04-28 回复
  5. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  6. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    pEFz(9465)

    2022-04-28 回复
  7. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    liy3(9014)

    2022-04-28 回复
  8. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    2Jj2(9472)

    2022-04-28 回复
  9. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    HNmG(9423)

    2022-04-28 回复
  10. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    F75y(9137)

    2022-04-28 回复
  11. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    BUPD(9381)

    2022-04-28 回复
  12. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    VF4D(9850)

    2022-04-28 回复
  13. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  14. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  15. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  16. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  17. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  18. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  19. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  20. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  21. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  22. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  23. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  24. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  25. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  26. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  27. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  28. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  29. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  30. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  31. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    GOoT(9136)

    2022-04-28 回复
  32. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    Sg1V(9001)

    2022-04-28 回复
  33. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    hm2l(9164)

    2022-04-28 回复
  34. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  35. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  36. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  37. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  38. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  39. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    ALUZ(9791)

    2022-04-28 回复
  40. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  41. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  42. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  43. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  44. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  45. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  46. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  47. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  48. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  49. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  50. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    mT73(9649)

    2022-04-28 回复
  51. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    CBmN(9342)

    2022-04-28 回复
  52. 1 作者
    Windows 10 · Google Chrome

    1'"()&%

    C2e0(9199)

    2022-04-28 回复
  53. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  54. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  55. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  56. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  57. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  58. 1 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  59. 1 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  60. -1 OR 2+520-520-1=0+0+0+1 -- 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  61. -1 OR 2+67-67-1=0+0+0+1 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  62. the 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  63. 1 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  64. 1Ch72YV4lSO 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  65. 1 作者
    Windows 10 · Google Chrome

    Tlm7snOp')) OR 491=(SELECT 491 FROM PG_SLEEP(15))--

    2022-04-28 回复
  66. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  67. the 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  68. 1 作者
    Windows 10 · Google Chrome

    1

    2022-04-28 回复
  69. 1 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  70. 19883328 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  71. 19220996 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  72. 19755105 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  73. 19682010 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  74. 19239894 作者
    Windows 10 · Google Chrome

    555

    2022-04-28 回复
  75. 19832755 作者
    Windows 10 · Google Chrome

    555

    2022-04-29 回复

备案号: 浙ICP备2021040483号