弱网测试,你真的会做吗?
Posted 七月的小尾巴
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了弱网测试,你真的会做吗?相关的知识,希望对你有一定的参考价值。
相信很多小伙伴在面试的时候,可能会被问到,如果一个功能要进行弱网测试的时候,你会怎么做呢?
一个功能需要做弱网测试,你会怎么做?
首先,我们要做的第一点就是需要分析这个功能为什么要做弱网测试,这样才会有针对性的去进行弱网测试。
通常一个功能在需要做弱网测试的时候,通常有两种原因。
- 原因一: 我们需要去看一下这个功能在客户端弱网状态下,所呈现的形式是怎么样的,是否会影响到我们的用户操作及体验。
- 原因二:也是比较重要的,就是我们这个功能他有网络相关的逻辑。
什么是网络相关的逻辑?
非常典型的功能,就是上传和下载。比如我们日常的看图片,或者看视频的时候,经常服务端就会有这样的逻辑,根据你客户端的状态,返回不同的分辨率或者视频,还有一种就是客户端可能在你发生网络切换的时候,会有对应的提示,这样的逻辑就是网络相关的逻辑。
怎么去做弱网测试呢?
如果你只是想要去查看一下弱网状态下的用户体验,那么方式有非常多,如 Charles
、 Fiddler
等,(下方内容中会详细描述如何使用 charles模拟弱网环境)都可以设置弱网状态,我们只需要将当前所在的网络调慢即可。
但是如果说我们需要测试网络相关的逻辑,那就不是简单的调慢网速就可以了。我们需要根据我们的业务逻辑也进行具体的网络测试。
比如说我们的业务逻辑是,2G、3G、4G,WIFI、不同的网络下,给用户对应的分辨率。那么我们就需要在服务端不同的条件逻辑判断下,去测试不同的分辨率。
弱网测试的关注指标
各个网络功能测试
- 测试 WIFI/4G/3G/2G/无网 状态下的用户体验
- 高延时、高丢包、假热点
在弱网测试过程中,我们可以借助 tc工具
。
通常我们是在应用服务器上使用tc工具模拟网络丢包。tc工具是工作在服务端的,是专门针对网卡来进行一些相关的策略的。比如当我们请求传到网卡的时候,其实这个时候请求还没有到程序里面,那我们可以在网卡出来的时候加长延时时间或者丢包。
关于如何模拟 延时、丢包,可以查看我的这篇博客。: 《Linux环境下模拟延时和丢包实现–tc》
无网络测试
测试断网状态下,各个功能是否会受到影响。通常程序会提供一个 无网络的 toast 提示或者兜底页。
网络切换测试
测试切换不同的网络环境,如 wifi切换至 4G、2G等,功能是否正常,弱网下,重复提交,事务的处理。
也需要校验弱网状态下的用户体验,如:
- 响应时间:安卓手机无响应报 ANR ,ios手机响应超时也会有提示
- 加载图标:loading、进度条
异常机制
同样也需要测试弱网状态下的 异常信息
、容错机制
、超时机制
、重连机制
。
利用 charles 模拟弱网环境
点击 proxy --> Throttle Settings, 打开网络设置页面。
首先勾选Enable Throttling,在Throttling preset中可以选择工具默认配置的一些网络状况。
配置参数解析
配置参数名称 | 配置参数说明 |
---|---|
bandwidth | 带宽,即上行、下行数据传输速度 |
utilisation | 带宽可用率,大部分modern是100% |
round-trip latency | 第一个请求的时延,单位是毫秒 |
MTU | 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况。 |
Releability | 指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定。 |
Stability | 连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠。 |
如果测试中,我们只需要针对部分域名的请求进行网络控制的话,可以勾选 only for selected hosts选项,添加hosts。
进入添加hosts页面,输入指定的参数,不需要的话填*号,填写完成后点击ok
点击ok保存就可以了。
以上是关于弱网测试,你真的会做吗?的主要内容,如果未能解决你的问题,请参考以下文章