移动端弱网测试

工具选型

弱网测试工具有如下几种:
1. Fiddler
2. Network Emulator for Windows Toolkit(NEWT)
3. Augmented Traffic Control(ATC)

Fiddler是一个抓包工具,显然不是专门用来进行弱网测试的,术业有专攻,我希望有一个专门进行弱网测试并持续维护的工具。

NEWT和ATC分别是微软和Facebook推出的网络模拟工具。其中,ATC是一个搭建在linux上的一个web服务,搭建一套之后可以给多人使用,而且是开源的。于是,我毫不犹豫的选择了ATC。

安装
ATC项目地址:
https://github.com/facebook/augmented-traffic-control

安装方式可参考:
http://www.cnblogs.com/coderzh/p/AugmentedTrafficControl.html
http://blog.csdn.net/w263044840/article/details/46469285

弱网测试作为健壮性测试的重要部分,对于移动端测试来说必不可少。这是因为目前移动端产品的使用用户所处的网络并非完全的流畅WIFI环境,仍有相当体量的用户主要使用4G、3G、2G等网络,另外因移动端产品使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。毕竟考虑到各种场景的客户端展示及容错,能极大提升产品印象和用户体验。

一、弱网测试的思路篇

弱网测试概要思路

总结了下(如上图所示),弱网测试主要进行特殊网络状态下的功能测试同时关注用户体验,具体来说,弱网测试包括弱网功能测试、无网状态测试、网络切换测试等,测试的同时关注用户体验的诸多方面。

1.弱网功能测试

这一部分主要是在各种非wifi网络环境下进行的功能测试,同时模拟高延时和高丢包的异常网络环境进行健壮性测试。2G/3G/4G的网络可以通过使用电话卡移动/联通/电信等网络进行模拟,关注页面的响应时间、页面呈现是否完整一致等。高延迟和高丢包的网络环境需要借助工具来模拟,在windows环境下可以使用fiddler和network emulator for windows toolkit来模拟,在mac环境下则可以使用charles和Xcode自带的开发环境网络异常模拟工具进行。工具的使用在工具篇具体介绍。

弱网功能测试建议将整体的功能测试用例在弱网环境下进行一轮测试,相同模块下的功能可以分多个网络条件进行测试。这部分发现的问题可能会有:页面图片在弱网环境下加载不出来(图片加载逻辑需优化)、需要模版的页面版式结构混乱(模版文件在弱网环境的加载需优化)、页面响应时间较长没有任何显示(页面显示逻辑待优化、重试机制加入)等。

2.无网状态测试

无网状态测试则是在切段网络的情况下进行的测试,主要关注页面的显示与交互、本地数据的存储、断网功能的使用等,经常该部分也需要与网络切换部分协同进行。通常来说,(1)断网情况下请求一个非本地数据的页面需要设定一定的时间等待上限,及时提示网络异常以及提示重试;(2)断网情况下请求一个部分本地数据的页面需要观察本地数据的部分是否加载显示正常,待请求的部分是否符合交互给的缺省样式一致;(3)断网情况下请求一个完全本地数据的页面是否显示正常。这里还需考虑本地数据存储的情况,有些需要联网后上报服务器的数据本地是否正确存储,联网后这些数据能否正常上报。

无网状态测试建议按照页面划分进行,针对每个页面单独测试无网状态的显示,页面间跳转的显示,页面内功能的点击和显示,同时关注无网到有网时的页面恢复显示状态、数据上报情况是否正常。

3.网络切换测试

这部分主要是进行几个不同网络场景的切换,包括wifi-2G/3G/4G、wifi-无网、2G/3G/4G-wifi、2G/3G/4G-无网、无网-2G/3G/4G、无网-wifi等。主要关注页面的显示与交互,尤其是弱网到wifi,wifi到弱网的情况,是否会有页面的crash以及显示的错乱、session是否一致、请求堆积处理等。

4.用户体验关注

弱网测试的目的就是尽可能保证用户体验,关注的关键点包括:

(1)页面响应时间是否可接受,关注包括热启动、冷启动时间,页面切换,前后台切换,首字时间,首屏时间等。

(2)页面呈现是否完整一致

(3)超时文案是否符合定义,异常信息是否显示正常。

(4)是否会有超时重连

(5)安全角度:是否会发生dns劫持、登录ip更换频繁、单点登录异常等。

(6)大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。

二、弱网测试的工具篇

在安卓产品测试的过程中,使用到的弱网测试工具主要是fiddler模拟网络延迟,以及network emulation for windows toolkit模拟网络丢包场景。MAC环境下的charles等抓包工具的实现原理是相同的。这里主要介绍下安卓弱网测试场景下使用到的工具。

1.fiddler

fiddler主要是使用Rules->Performance->Simulate Modem Speeds功能进行的网络延迟模拟,点击Rules->Customize Rules进行设置,打开自定义脚本编辑器,如下图所示:

红框内标出的就是设置延迟时可以操作的上行和下行网络延迟时间,意为每上传/下载1KB的数据要延迟多少毫秒。这里我把请求(上行)时间延迟设置为3000ms,响应(下行)时间延迟设置为1000ms(模拟了2G网络的速度)。

这里通过计算上行和下行的网络延迟时间,可以模拟出想要的网络效果。利用 (1KB/下载速度)x1000 = 要delay的毫秒数 来计算。比如我们要模拟2G的网络。2G网络上行和下行的网络速度如下图所示:

我们看到在各种制式下上行速度都是2.7kb/s,下行速度是9.6kb/s,根据1KB=8kb,可以计算出上行延迟为(1/(2.7/8))x1000=2962ms ,同理下行延迟未(1/(2.7/8))x1000=833ms。这里我取了近似整值3000ms和1000ms,模拟了2G网络。同理也可以通过计算模拟3G网络,附3G网络制式及速度图如下:

设置完成后,在fiddler里将Rules->Performance->Simulate Modem Speeds选中即可使设置生效。

2.Network Emulation for Windows Toolkit

fiddler只能设置延迟,无法进行丢包的设置。在windows上有个简单易用的工具Network Emulation for Windows Toolkit可以用来设置网络丢包情况。设置丢包有两个关键步骤,一是设置电脑网络,二是将移动设备接入电脑共享的网络。详细看下每个步骤:

(1)设置电脑网络

工具简单界面如下所示:

最上方是本地应用,最下方的本地网络。中间的两块区域上部分需要建立链路,下部分可以对特定IP进行过滤。因为我们需要进行的是网络丢包设置,所以过滤器这边就可以不做设定。我们点击顶部菜单栏Configuration->New Filter,在弹出的设置框里点击Add,新增一个过滤器,如下图所示:

接着点击Configuration->New Link新增一条链路,此时界面显示如下:

我们没有对网络做任何限制,此时网络是畅通的,ping一下看:

果然没有任何丢失,且无超时发生。

此时我们设置网络丢包,在新建链路点击右键,选择Upstream设置上行网络。这里我们设置了随机丢包率为40%:

同理也可以设置下行网络。设置完成后要点击Action->Start开始使设置生效。生效后我们再来ping一下网络看看:

可以看到此时有丢包和超时发生了。

除了设置随机丢包率,我们也可以设置周期丢包率、引入错误等网络异常情况。甚至也可以设置延时。总之该工具在弱网测试中可用性还是很强。

(2)移动端设备接入电脑网络

设置完PC端网络环境,由于我们是移动端设备,需要移动端设备接入PC的网络,因而需要做网络共享。当PC有无线网卡的情况下,可以首先利用无线网卡共享有线网络的数据,然后利用Connectify或者360wifi等共享wifi工具,让移动端设备共享PC的网络。当PC没有无线网卡的情况下(我们的办公PC就没有网卡--),安卓端手机可以使用usb连接电脑使用PC的网络。这里有个简单易行的办法,就是使用小米手机助手的一键开启共享上网功能(当然了目前只能支持共享给小米手机,且系统安卓版本低于6.0)。在电脑上安装小米手机助手,小米手机通过usb开启usb调试连接电脑,就可以共享电脑的网络了。如下图所示:

点击一键开启后,可以看到小米手机的网络全部关闭,此时设备使用的就是电脑共享出来的网络。

至于非小米手机的其他设备,也可以使用usb线连接电脑共享其网络。可参考网上的设置教程。

总之,弱网测试作为健壮性测试的一种,是测试过程中必不可少的重要环节。考虑到弱网测试的各项要点以及合理使用各项工具模拟出复杂、严苛的网络环境,能极大提高产品的可用性,保证产品上线后应对各种应用场景的使用质量。以上是我在安卓产品弱网测试过程中总结出的一点经验,还有许多未考虑周全的测试点,还需要在后续的测试中继续加强经验和总结,与大家共同探讨。

参考文档:

https://www.jianshu.com/p/c0b5ec817617

https://blog.csdn.net/m1213642578/article/details/52351279

原文地址:https://www.cnblogs.com/Ronaldo-HD/p/9870562.html

时间: 2024-10-11 12:55:10

移动端弱网测试的相关文章

fiddler抓包-7-C端弱网测试

前言大家平时也会发现我们有时候在地铁.高铁.电梯等等某个时候网络信号比较差导致网络延迟较大,这时是否有友好提示呢?甚至有可能发生崩溃等等...所以我们是可以通过fiddler来对web.APP.PC客户端进行弱网测试.一.简介 1.原理:通过fiddler代理来模拟限制网络,它提供了客户端请求前和服务器响应前的回调接口.从而使得上传.下载进行延迟速度,达到限速效果: 2.2G.3G.4G.5G.wifi或突然没网/断网,当然我们最多考虑的还是2.3G弱网测试: 二. fiddler 弱网配置 1

fiddler进行弱网测试

fiddler模拟限速的原理 弱网测试原帖连接:http://blog.csdn.net/eleven521/article/details/19089671 我们可以通过fiddler来模拟限速,因为fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口,我们可以在这些接口里 面自定义一些逻辑.Fiddler的模拟限速正是在客户端请求前来自定义限速的逻辑,此逻辑是通过延迟发送数据或接收的数据的时间来限制网络的下载速度和 上传速度,从而达到限速的效果. 他提供了一个功能,让我

手游测试之《弱网测试》

weimjsam手游测试之<弱网测试> 由于大部分手游面对的用户群的网络连接情况不同,主要在2G/3G/4G及公共WIFI的网络连接下,在公共场所:地铁/电梯/地下室等信号差的地方进行游戏的话,由于网络延迟的情况导致游戏出现体验及逻辑异常的问题,为了避免出现这些情况,需要进行弱网测试. 弱网测试,是在功能测试的基础上跑的,主要关注C端&S端表现:SEO|SEO优化|SEO排名|关键词收录 C端关注:网络状态检测及收发消息超时处理,UI阻止用户操作,避免产生消息堆积在恢复后并发到后端及恢

Android-APP流量测试及弱网测试

流量篇 概念 中等负荷:应用正常操作 高负荷:应用极限操作 流量测试中的测试子项: 1.应用首次启动流量值 2.应用后台连续运行 2 小时的流量值 3.应用高负荷运行的流量峰值 4.应用中等负荷运行时的流量均值 获取流量数据: 1.tcpdump+wireshark 2./proc/net/目录下相关文件 cat /proc/net/dev 获取系统的流量信息 3.查询应用的pid: adb shell ps | grep tataufo #如:31002 通过PID获取该应用的流量数据: ad

使用fiddler进行app弱网测试

转自:http://www.51testing.com/html/01/n-3727001.html APP弱网模拟测试 移动端测试区别于PC端测试的一点就是网络的多变性:不同的网络环境和网络制式的差异,都会对用户使用app造成一定影响. 例如:进地铁.上公交.进电梯等,如果app没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退.ANR.数据丢失等问题.因此,app网络测试,特别是弱网测试显得尤为重要. 利用fiddler的Simulate Modem Speeds功能,可

fiddle进行弱网测试

参考:https://blog.csdn.net/eleven521/article/details/19089671 近期因为要对手机app进行弱网测试,所以用到fiddle这个工具,fiddle是一个强大的工具,不仅可以抓包,同时可以对pc端和web端进行限速模拟,这里我就简单的用fiddle尝试一下怎么用fiddle给app做弱网测试. fiddle模拟限速的原理 我们可以通过fiddle来模拟限速,因为fiddle本来就是个代理,它提供了客户端请求前和服务器响应前的回调端口,我们可以在这

移动APP需要重视弱网测试

什么是弱网测试 在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/Edge/4G/Wifi等多种手机网络连接方式.不同的协议.不同的制式.不同的速率,使移动应用运行的场景更加丰富. 从测试角度来说,需要额外关注的场景就远不止断网.网络故障等情况了.对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分.按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网.除此之外,弱信号的Wifi通常

弱网测试

弱网测试一般是指模拟在网络环境比较差的情况下,检测APP是否有异常,如崩溃,数据收发出现丢包的情况 一.首先需要控制网络,有两种方式其一使用网络损伤仪进行,其二采用软件方式.硬件采购费用太贵,因此使用win平台下的ShunraVESMBEditon或者Network Emulator for Windows Toolkit.两者都能达到控制丢包率,延迟等功能.考虑到ShunraVESMBEditon收费,接下来使用Network Emulator for Windows Toolkit软件. 二

Android弱网测试中关于网络检测的一些借鉴方法

Android 平台下提供了一个android.net.ConnectivityManager类来监控当前的网络状态包括wifi.gprs.UMTS等.可以判断当前用户网络到底是WIFI还是移动网络,也可以判断是WAP接入还是NET接入,这个在弱网测试可以考虑这些知识进行构建工具. 这个类有如下几方面的用法: 1. 监控当前的网络状态 2. 当网络状态发送变化时发出广播 3. 当一个网络连接失败时切换到另一个网络 4. 提供一些API允许应用程序查询当前较好和较差的网络状态 下面是检查网络连接的