利用Charles可以设置带宽、延迟等参数,模拟弱网络环境。在Charles中打开Proxy-Throttle Settings,如下图所示,配置好参数后,启动Throttle如蓝色框标注,确定后可以看到绿色框标注处的图标点亮。 具体参数的含义可参考如下博文http://blog.163.com/benita_0/blog/static/250608762013317113129628/
以下是遇到的一些问题场景和可能原因分析:
场景一:上传大图或者多图时,在弱网络环境下出现进度条走到一半卡住然后又从头开始 ;原因:采用分段上传方式,在请求超时时间到时,分段传输没有结束,代码逻辑不对,导致每次重试都重头上传,一直循环。
场景二:在弱网络环境下容易出现登录不上;原因:登录没有缓冲机制,而请求超时时间的设置没有区分同网络情况;解决方案:针对wifi、2g、3g、4g设置不同的超时时间。
场景三:刷新页面很快就给出暂无内容的提示,明显没有到请求超时时间;
原因:可能是连接超时时间太短,wifi下设置两秒,在弱网络下需要加长。
场景四:弱网络环境下,请求的数据返回时间较长,等待的过程中,如果页面上的相关控件仍然可以操作,则有可能出现闪退现象;
原因:依赖数据的控件操作,在数据返回前没有做兼容处理。
场景五:搜索时输入关键字会连续发请求,停下时,显示最终的关键字搜索结果,但很快又会被前面的关键字搜索结果覆盖了;
原因:中间的请求返回较慢,显示了最终的结果后,之前的请求返回的数据应不做处理。