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

整理,保姆,系列,教程,玩转,charles,神器,如何,模拟,环境 · 浏览次数 : 285

小编点评

**网络测试要点和使用Charles做弱网测试的方法** **引言** 当网络速率缓慢时,APP可能出现卡顿问题,因此需要进行网络测试以优化网络性能。Charles提供了一种便捷的方法,可以模拟不同网络环境的网络测试,帮助开发者解决APP网络测试中的问题。 **网络测试用例** * 弱网测试关注点:APP反应慢时间是否有友好的提示信息 * Charles设置弱网环境: * 打开Charles,点击【Proxy】-->【Throttle Settings】 * 勾选【Enable Throttling】,开启限速模式 * 设置Thottle preset,选择不同的网络环境 * 自定义网络预设: * 设置各项数值,点击 Add Preset * 保存自定义网络设置 ** Charles模拟弱网环境** 1. 启动Charles,点击【Proxy】-->【Throttle Settings】 2. 勾选【Enable Throttling】,开启限速模式 3. 设置Thottle preset,选择不同的网络环境 4. 点击OK,即可开启弱网模拟 **使用Charles测试弱网测试** 1. 配置好后,小乌龟图标被点亮了,表示弱网模拟开启 2. 使用 Charles 测试不同网络环境的响应时间 3. 接口测试的请求响应时间应该小于 3 秒 **结论** 通过使用Charles模拟不同网络环境的网络测试,开发者可以优化APP的网络性能,解决用户在网络缓慢情况下出现的问题。

正文

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做弱网测试的方法,让大家对网络测试有一个初步的认识。好了,今天时间也不早了,宏哥就讲解和分享到这里,感谢您耐心的阅读,希望对您有所帮助。

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

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(2)-charles安装激活(Mac)最新简单教程【亲测有效】

1.简介 上一篇中宏哥介绍了如何在Windows系统安装激活Charles,那么使用Mac系统的小伙伴或者童鞋们就不高兴了,怎么没有Mac的安装激活教程了。宏哥不能厚此薄彼,今天专门补充一篇在Mac上安装Charles并且将其激活。 2.Mac下载安装 2.1下载Charles 官网下载:https

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(3)-再识Charles

1.简介 上一篇通过宏哥的介绍想必各位小伙伴或者童鞋们对Charles已经有了一个理性地认识,今天宏哥在从Charles的外貌介绍和分享一下,让小伙伴们或者童鞋们再对Charles有一个感性的认识,今天主要是对Charles的界面进行一个详细的介绍。 2.Charles主界面概览 Charles的主

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(4)-Charles如何设置捕获会话

1.简介 前边几篇宏哥介绍了Charles界面内容以及作用。今天宏哥就讲解和分享如何设置Charles后,我们就可以愉快地捕获会话,进行抓包了。因为上一篇许多小伙伴看到宏哥的Charles可以分开看到request和response,而自己的却看不到,因此有点蒙,有点疑惑。同样的版本显示的界面却是不

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(5)-Charles如何设置捕获Https会话

1.简介 在大数据时代,互联网时代,个人信息安全尤为重要,网络安全在近日多起电信诈骗事情发酵下的情况下,引起国家,企业,个人对于互联网安全进一步的重视。而之前很多以http协议传输的网站出现的网站信息泄露,个人信息裸露在大数据的泳池中,让我们在遇到一个陌生网站的时候,都会格外考虑其安全性。通过认证S

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘

1.简介 Charles和Fiddler一样不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求。 Charles也能截获 Android 和 Windows Phone 等设备发出的 HTTP/HTTPS 请求。 今天宏哥讲解和分享Charles如何

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(7)-Charles苹果手机手机抓包知否知否?

1.简介 Charles和Fiddler一样不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求。 Charles也能截获iOS设备发出的请求,比如 iPhone、iPad 和 MacBook 等苹果设备。 今天宏哥讲解和分享Charles如何截获苹果

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(8)-Charles如何进行断点调试

1.简介 Charles和Fiddler一样也有个强大的功能,可以修改发送到服务器的数据包,但是修改前需要拦截,即设置断点。设置断点后,开始拦截接下来所有网页,直到取消断点。这个功能可以在数据包发送之前,修改请求参数;在收到应答包,在js解析和浏览器渲染之前,修改返回结果。有了这个功能,开发者就可以

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(9)-Charles如何修改请求参数和响应数据-上篇

1.简介 宏哥之前一直用postman调接口比较多(web端),也非常容易上手和操作。但有时候想要去修改APP的页面展示,造数据又会比较麻烦,你自己造相对还好些,要是让开发造,还得低眉顺眼的去求人。通过今天的学习后,再也不担心这些烦心事。我们可以通过工具Charles就可以实现。可以用以下三种方法修

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(10)-Charles如何修改请求参数和响应数据-下篇

1.简介 宏哥之前一直用postman调接口比较多(web端),也非常容易上手和操作。但有时候想要去修改APP的页面展示,造数据又会比较麻烦,你自己造相对还好些,要是让开发造,还得低眉顺眼的去求人。通过今天的学习后,再也不担心这些烦心事。我们可以通过工具Charles就可以实现。可以用以下三种方法修

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

1.前言 张三:“我写的软件好奇怪啊,在网络好的时候一点问题也没有,但是信号差的时候明显卡顿,看来我只能一直蹲在卫生间、电梯或者地铁(信号差)调bug了”。 Charles:“哈哈哈,傻孩子,我就自带弱网工具呀,在Proxy-->Throttle Setting下,使用前要记得勾选Enable Th