浅谈弱网测试01
背景
弱网测试,属于健壮性测试的内容。随着国内移动端迅猛发展,大大增加用户碎片化使用移动端的概率。
想象一下,用户在地铁里,巴士上,甚至是电梯,车库等场景使用APP,我们就需要针对这些场景的弱网环境下,
验证出现丢包、延时软件的处理机制,避免因用户体验不友好造成用户的流失。
1.用户体验
APP使用过程中,弱网的高延迟和高丢包,在实时性要求非常高的场景,容易伤害用户体验
2.非正常情况下,出现bug概率会增加
在解决日常的支持需求中,经常会遇到一些用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动,
或者是本身网络环境就较为恶劣,而服务在面对这种恶劣的网络环境的健壮性不够,导致会出现一些意想不到的bug。
原理
使用代理捕获网络信号进行环境部署来分析APP的延迟(加载)时间、内容,提出HTTP优化建议,
让开发者能够在APP上线前提前预知app在较差网络环境下的表现,以便提前发现问题,进行有针对性优化。
让APP在任何网络情况下,都能表现自如,出类拔萃。
核心流程: 网络请求—》代理proxy—》进行目标操作(修改返回值&延迟&丢包等)—》返回给移动端(反向代理)
代理分为正向代理和反向代理,下面通过两张图解释下通过代理进行弱网测试:
正向代理(Forward Proxy)
一般来说都是直接叫做『代理』,代理是什么呢?
正向代理是指用户利用代理服务器访问目标服务器。
反向代理
正向代理代理的是用户,而反向代理则相反,代理对象是目标服务器,是指服务端利用代理服务器给用户提供服务。
和正向代理相比,二者都是利用代理服务器实现的,不过反向代理的主语是服务端,所以说反向代理对于用户来说是透明的,
在用户的视野里,代理服务器便是目标服务器。
模拟方法
当前模拟恶劣网络环境主要可以通过以下这些手段实现:
通过应用层或者传输层的代理服务器,通过在代理服务器上设置一些模拟恶劣网络环境的参数,
使得通过这些代理服务器的流量都被转化为恶劣网络环境下的流量。
如利用Fiddler,Charles等具有代理服务器功能的网络流量分析软件来实现(反向代理原理图)。
【实际操作】具有代理服务器功能的网络流量分析软件。