前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(11)-Charles如何模拟弱网环境

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(11)-Charles如何模拟弱网环境

作者头像
北京-宏哥
发布2023-03-16 14:19:23
4.6K0
发布2023-03-16 14:19:23
举报
文章被收录于专栏:Charles教程北京宏哥Charles教程

1.前言

张三:“我写的软件好奇怪啊,在网络好的时候一点问题也没有,但是信号差的时候明显卡顿,看来我只能一直蹲在卫生间、电梯或者地铁(信号差)调bug了”。

Charles:“哈哈哈,傻孩子,我就自带弱网工具呀,在Proxy-->Throttle Setting下,使用前要记得勾选Enable Throttling 。”

Charles眨眨眼:“如果你想指定网站,可以勾选Only forselected hosts,然后在对话框的下半部分设置增加指定的hosts项。”

2.简介

在线上环境通常有些因为网速慢导致的bug,在本机无法重现,那时候就很抓瞎,如果嫌远程麻烦,推荐使用throttle。支持对Bandwidth(带宽)、Utilistation(利用百分比)、Round-trip(往返延迟)、MTU(字节)进行配置,并且支持3G/4G或者其他网络模式。

如果我们只想模拟指定网站的慢速网络,Charles就可以帮你排忧解难,这就今天重点分享和介绍的。

APP的应用场景根据人的使用情况密切相关,所处的网络环境多变,APP的弱网测试变得很重要;所以在我们做APP测试的时候需要对不同的网络格式、无网的情况进行测试,模拟多变的APP应用场景。在做移动开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常(如模拟应用在网络较慢时的响应时间等情景)。Charles 对此需求提供了很好的支持。

3.网络测试用例

我们首先来简单的了解一下,网络测试用例,如下图所示:

4.弱网测试关注点

根据网络测试用例,我们来看看我们需要重点关注的几点如下:

APP反应慢的时候是否有友好的提示信息

APP弱网情况下,提交数据不会产生重复数据

APP 不会出现Crash、ANR 的情况

好了通过前边的理论知识,我们大致知道网络测试是怎么回事了,下面宏哥讲解一下,如何用Charles模拟弱网环境。

5.Charles设置弱网环境

1.打开Charles,点击【Proxy】-->【Throttle Settings】 。如下图所示:

2.勾选【 Enable Throttling】,开启了限速模式。如下图所示:

Throttle Setting配置参数字段说明:

Only for selected hosts :表示仅选择的域名做弱网限制,如上图所示,只限制localhost:9999域名的请求,其他的请求不做限制;若不勾选,那么对所有的请求都进行限制;

Throttle preset :可以选择要模拟的网速,是Charles预设的网络设置 ,下拉选项由上到下,网速越来越好。

  ADSL:属于DSL技术的一种,全称Asymmetric Digital Subscriber Line( 非对称数字用户线路),亦可称作非对称数字用户环路。是一种新的数据传输方式。

  VDSL:是一种非对称DSL技术,全称Very High Speed Digital Subscriber Line (超高速数字用户线路)。和ADSL技术一样,VDSL也使用双绞线进行语音和数据的传输。VDSL是利用现有电话线上安装VDSL,只需在用户侧安装一台VDSL modem。最重要的是,无须为宽带上网而重新布设或变动线路。

  ISDN:综合业务数字网(Integrated Services Digital Network,ISDN)是一个数字电话网络国际标准,是一种典型的电路交换网络系统。在ITU的建议中,ISDN是一种在数字电话网IDN的基础上发展起来的通信网络,ISDN能够支持多种业务,包括电话业务和非电话业务。

Bandwidth —— 带宽,即上行、下行数据传输速度

utilisation —— 带宽利用率,利用率是总带宽的百分比,大部分modern是100%。

round-trip latency ——请求往返延迟,单位是ms。往返延迟测量客户端和远程服务器之间第一次往返通信的毫秒延迟。它用于客户端向服务器 和 服务器向客户端的每一次请求 。

MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。

Releability —— 指连接的可靠性,常说的丢包。这里指的是10kb的可靠率。用于模拟网络不稳定。 可靠性是衡量连接完全失败的可能性。这是非常有用的模拟不可靠的网络条件。 可靠性是指定为成功发射10kib消息的可能性。如何值为50%,意味着所有10kib传输一半会成功。较大的邮件或更小的消息或多或少都有可能失败,所以20kib传输将只有25%(1/2 * 1/2)的成功率和5kib传输成功率约70% (0.5开平方)。

Stability —— 连接稳定性常说的网络抖动。也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。 稳定性是衡量一个连接的可能性是不稳定的,因此降低了质量。 这是非常有用的模拟网络,如移动网络,定期连接质量差。如果连接不稳定,则连接的质量会在不稳定的质量范围内随机下降。此质量值,然后应用作为另一个缩放因子的可用带宽。

unstable quality range(不稳定质量范围) 此处设置主要针对于Stability中设置中的范围。例如stability稳定性设置了70%,那不稳定性则可以设置20~30之间。

3.设置【Thottle preset】,选择不同的网络环境。如下图所示:

4.如果要对个别域名进行限速,则勾选【Only for selecte hosts】, 然后添加相应的域名即可。

5.最后点击【OK】就行了。

6.配置好后,此时,Charles上的小乌龟图标被点亮了,表示弱网模拟开启,可以使用弱网进行测试了。使用完毕再次点击小乌龟即可解除弱网。如下图所示:

6.自定义网络预设

1.设置好各项数值,点击 Add Preset ,如下图所示:

2.填写 Preset 的名称,点击OK ,即可保存成功,之后就可以在Throttle preset 的下拉选项中找到自定义的网络设置,如下图所示:

3.可以将自己常用的网络设置进行自定义保存,不用每次都重新设置。如下图所示:

7.弱网测试实践

互联网的产品,规则就是请求响应时间应小于3秒,认为是优秀;如果是3-5秒,认为是可以接受的。接口测试的请求响应时间其实就是 一个HTTP完整的请求时间之和。

1.未开启弱环境模拟一个请求,先看下正常的网路请求时间,Duration是请求响应时间是2ms,如下图所示:

2.开启弱网环境-设置56kbps Modem 网络环境,查看响应时间,如下图所示,响应时间为13ms,接口明显慢了很多,如下图所示:

8.小结

当前APP网络环境比较复杂,网络制式有2G、3G、4G、5G网络,还有越来越多的公共Wi-Fi。不同的网络环境和网络制式的差异,都会对用户使用app造成一定影响。另外,当前app使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。如果app没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退、ANR(Android Not Response)、数据丢失等问题。因此,app网络测试,特别是弱网测试尤为重要。本文梳理了网络测试要点(主要针对APP)和使用Charles做弱网测试的方法,让大家对网络测试有一个初步的认识。好了,今天时间也不早了,宏哥就讲解和分享到这里,感谢您耐心的阅读,希望对您有所帮助。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.前言
  • 2.简介
  • 3.网络测试用例
  • 4.弱网测试关注点
  • 5.Charles设置弱网环境
  • 6.自定义网络预设
  • 7.弱网测试实践
  • 8.小结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档