app弱网测试
作者:互联网
目录
6.9.1 Bandwidth(Kbps)—>带宽(千位/秒)
6.9.3 Round-trip latency (ms)—>往返延迟(Ms)
6.9.7 Unstable quality range (%)—>不稳定质量范围(%)
8.1. 用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据初始化完成后出现重复,造成数据不一致。
8.2. 用户点击数据上传,数据上传过程中网络弱且不稳定,基于联网状态自动触发数据上传,导致出现数据重复写入,形成脏数据
8.3. 在弱网环境下,用户输入用户名和密码点击登录,应用链接超时返回用户名和密码错误提示
8.4. 在弱网环境下,用户输入用户名和密码后点击登录,登录过程中应用崩溃并且闪退
8.5. 弱网络环境下,用户请求页面响应时间较长,等待的过程中,页面上的部分控件仍然可以操作,当用户点击控件时,出现应用闪退现象
8.6. 在弱网环境下,用户第一次输入搜索关键字没有得到响应后,再次输入全新关键字并发送请求,等待搜索结果返回后,当前结果页被之前的关键字搜索结果刷新覆盖
在当今移动互联网盛行的时代,网络的形态除了有线连接,还有2G/3G/4G/5G/WiFi等多种手机网络连接方式。不同的协议、不同的制式、不同的速率,使移动应用运行的场景更加丰富。
目前移动端产品的用户所处的网络并非完全流畅的网络环境,移动端产品使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。
考虑到各种场景的客户端展示及容错,能极大提升产品印象和用户体验。
从测试角度来说,需要额外关注的场景远不止断网、网络故障等情况,对于弱网的数据定义,不同的应用所界定的含义是不一样且不清晰的,不仅要考虑各类型网络最低速率,还要结合业务场景和应用类型去划分。
按照移动的特性来说,一般应用低于2G速率的都属于弱网,也可以将3G划分为弱网。除此之外,弱信号的WiFi通常也会被纳入到弱网测试场景中。
Charles 是在PC端常用的网络封包截取工具,通过将自己设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。
Charles的主要功能里包含了模拟慢速网络,可以用来模拟各种网络环境。
腾讯WeTest开发平台推出了一款针对移动应用的弱网测试工具—QNET,解决了在Android设备上进行弱网络专项测试的痛点,QNET无需ROOT手机,无需连接数据线,以独立app的方式,为用户提供给快捷、可靠、功能完善的弱网络模拟服务。
另外QNET还有一个很好用的功能——TCP/UDP网络协议抓包,帮助开发和测试人员进行网络流量分析,而不需要ROOT手机,使用tcpdump进行抓包。
QNET是直接安装在手机上的apk,从官网下载安装即可,官网地址:WeTest腾讯质量开放平台 - 腾讯 WeTest-All Test in WeTest
除了android自带的模拟器,还可以选择第三方模拟器,如mumu模拟器、夜神模拟器,这里以mumu模拟器为例。
安装完成后,在命令行界面输入adb connect 127.0.0.1:7555、adb devices,出现如下界面,说明模拟器连接成功
连接设备的时候,可以选择android自带模拟器、mumu模拟器、真机。
这里以真机为例:
- 用USB数据线连接真机与电脑
- 打开真机的开发者选项(版本号连续点击7或5次开启)
- 打开USB调试开关
- 打开命令行界面,输入adb devices,出现真机设备编号,表示设备连接成功
打开Charles,进入Proxy>Proxys Settings,打开代理服务器,设置好端口号(一般为8888),勾选Enable transparent HTTP proxying
打开电脑命令行界面,输入ipconfig命令
打开手机,进入 设置 >WLAN >当前连接的网络>高级>代理设置,将代理设置为手动,主机名是上一步查到的电脑IP,端口号是Charles设置的端口号(8888)
注:电脑与手机的网络需要在一个局域网里面。
https是经过加密传输的,所以当手机的https数据包代理到电脑时电脑可以捕获到数据但是无法解析,能看到的只是请求地址,以及一些unknown的请求内容。我们想要看到有内容的请求,就需要安装证书和设置ssl代理了。
在Charles进入Proxy > SSL Proxying settings,在include下add一个空白的地址,点击OK后,生成一个*的地址,表示对所有的地址均设置SSL代理
进入Charles点击Help >SSL Proxying > Install Charles Root Certificate,在弹出框中完成证书的安装
进入Charles点Help >SSL Proxying > Export Charles Root Certificate and Private Key…,在弹出的对话框中输入密码
然后通过任意方式将证书发送到手机上,在手机的设置>WLAN>高级设置>安装证书>找到证书>安装>输入提取密码>完成证书安装
进入Charles,点击Procy > Throttle Settings,可以模拟不同的网络环境
download—>下载速度,指的是从网络上下载下来的速度
upload—>上传速度,指的是把数据上传到网络上的速度
带宽可用率,大部分是100%。
延迟,就是网络请求发起时,延迟多
一般设置1500
丢包
连接的可靠性,用于模拟网络不稳定
连接稳定性,用于模拟移动网络,移动网络连接一般不可靠。
QNET支持手Q账号或者腾讯员工的TAPD账号登陆,如果使用QQ账号首次登陆,需要注册WeTest平台账号,即可成功登陆。
成功登陆后,进入工作台,点击【点击选择应用】按钮,选择待测试的app,然后点击右上角【启动】按钮,第一次启动的时候需要对悬浮窗权限进行授权,部分机型会弹出开启VPN服务的确认框,点击确认。
QNET提供了预设的网络场景,包含了常见的生活场景,还有弱网测试中比较常用的100%丢包场景等。
QNET支持用户根据自己的测试需求自定义弱网参数模板,有比较好的灵活性。
【网络场景】下,是系统已配置好的模板,供参考选择使用,如果要自定义参数/场景的话,可以点击【工作台】/【网络场景】页面右上角【新增】按钮添加【场景模板】/【自定义模板】/【场景模板(全球)】
开始测试后,QNET会自动拉起待测试程序,然后默认会显示弱网模板控制悬浮窗,以及弱网模板信息悬浮窗。
• 左边悬浮窗是控制悬浮窗,可以下拉即时切换弱网模板,双击Q按钮可以切回QNET应用,点击暂停按钮可以停止弱网状态恢复正常网络;
• 右侧悬浮窗显示当前的模板名,实时延迟,实时网速,以及当前模板的具体参数。
注:QNET支持动态探测当前网络和远端服务器的延迟,然后动态适配用户设置的上下行延迟,保证真实网络延迟和用户设置的尽量一致。
QNET目前支持的弱网参数包括:
• 上下行延时
• 上下行延时抖动
• 上下行带宽
• 上下行随机丢包
• 上下行周期弱网
• TCP/UDP/ICMP协议控制
• 弱网IP设置
连续丢包(周期性完全丢包),常用在测试app流畅性,验证app对网络波动的支持程度。
TCP/UDP协议控制(Protocol)支持针对协议的弱网控制,比如我们可以控制UDP协议100%丢包,来测试某些不支持UDP协议的运营商的弱网场景。
QNET还支持网络抓包,导出为Pcap文件,可以在PC上用Wireshark工具打开分析,目前支持TCP, UDP, DNS协议。
使用网络抓包功能需要开启开关:
用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据初始化完成后出现重复,造成数据不一致。
原因:数据下载过程中、下载失败后,未进行数据回滚,中止后重新下载,出现数据重复
解决方案:通过事务处理数据下载逻辑,下载失败后,应用本地数据库进行数据回滚。
用户点击数据上传,数据上传过程中网络弱且不稳定,基于联网状态自动触发数据上传,导致出现数据重复写入,形成脏数据
原因:数据上传过程中,由于失败重传机制,会出现连续两次写操作,并且未做唯一识别处理
解决方案:根据数据特性,对可能造成脏数据的地方,通过关键字段,例如创建时间,key-value值等生成hash键,标记记录唯一性,即数据写入时,检查hash键是否存在,如果已经存在,当前重复数据丢弃。
在弱网环境下,用户输入用户名和密码点击登录,应用链接超时返回用户名和密码错误提示
原因:在弱网环境下的连接超时后,按照强网业务逻辑处理,导致返回超时异常。
解决方案:弱网连接超时后,检查应用本地数据库是否有用户登录信息,若存在,获取应用本地用户信息进行登录。
在弱网环境下,用户输入用户名和密码后点击登录,登录过程中应用崩溃并且闪退
原因:弱网环境下数据下载超时,加载数据严重依赖于后来的异步加载。数据还没来得及返回,应用跳转到下个activity,导致崩溃。
解决方案:健壮数据加载流程,通过标记后台数据下载状态加载界面,依赖数据下载完成后,再进行页面跳转。
弱网络环境下,用户请求页面响应时间较长,等待的过程中,页面上的部分控件仍然可以操作,当用户点击控件时,出现应用闪退现象
原因:没有对数据加载流程进行判断,直接暴露控件可控,当出现依赖数据的控件操作时,没有在数据返回前做兼容处理。
解决方案:在数据加载过程中,设置页面对外暴露的控件为“不可操作”,当数据加载完再释放。
在弱网环境下,用户第一次输入搜索关键字没有得到响应后,再次输入全新关键字并发送请求,等待搜索结果返回后,当前结果页被之前的关键字搜索结果刷新覆盖
原因:中间的请求返回较慢,显示最终的结果后,之前请求返回的数据应不做处理。
解决方案:对异步请求未完成的任务进行cancel
开启网络代理后,用手机上网,会看到出现了好多抓包记录,如果很难区分哪些是手机的,哪些是PC的,可以在Proxy里取消Windows Proxy,然后抓到的数据就全部是手机产生的数据包了。
官方提供了一些Q&A,请参考:
标签:弱网,场景,QNET,app,网络,点击,测试,数据 来源: https://blog.csdn.net/tcc374254426/article/details/121975527