备注:未经博主允许禁止转载
个人笔记(整理不易,有帮助,收藏+点赞+评论,爱你们!!!你的支持是我写作的动力)
笔记目录:学习笔记目录_pytest和unittest、airtest_weixin_42717928的博客-CSDN博客
个人随笔:工作总结随笔_8、以前工作中都接触过哪些类型的测试文档-CSDN博客
目录
一:为什么要进行弱网测试
二:衡量网络性能好坏的指标
三:术语了解
四:网络参数参考
五:网络测试点
六;弱网测试方案
一:为什么要进行弱网测试
弱网测试属于健壮性测试重要组成部分。
因为不是大多数人都有网速稳定的wifi,也有2/3/4G用户,而且移动端使用场景多变,比如在地铁,进电梯,去郊外等。(比如你在搭地铁,在碎片化的时间,你可能会看看应用或者打一盘游戏,或者国外某些地区网络环境相对落后)
按照移动的特性来说,一般低于2G速率的都属于弱网,随着5G的普及,3G也逐渐划分为弱网。
验证app在出现延时、丢包、网络抖动等异常网络下的处理机制,避免因体验差而导致用户流失,所以弱网测试是非常有必要的。
- 网络抖动:网络传输过程中,数据包到达接收端的时间出现不稳定的波动,这种波动会导致数据包的延迟增加或减少,超过50毫秒的网络抖动可能会导致游戏中的卡顿或丢包,严重影响用户体验
二:衡量网络性能好坏的指标
- 带宽(吞吐量):单位时间内传输的数据量,单位通常是:每秒比特数:bps。带宽反映了网络的传输能力,越大越好。
平时说的下载速度单位是Mb/s,它们之间的换算关系是8mbps=1Mb/s。
1M带宽即指1Mbps=1000Kbps=1000/8KBps=125KBps;
因此1M的带宽下载的速度一般不会超过125KB每秒
- 丢包:数据丢包个数=发送的数据包数-接收的数据包数。丢包反映了网络可靠性,越小越好。
- 时延:数据包从发送开始到接收到该数据,所耗费的时间,单位通常是ms(毫秒)。时延反映了网络的速度,越小越好。一般时延=发送+传输+处理+排队,我们测试要关注发送和传输情况
- 抖动:指时延的变化,即两个数据包时延的差值。抖动反映了网络的稳定性,越小越好。
- 乱序:指接收到的数据包顺序和发送顺序不一致的次数。乱序反映了网络的稳定性,越小越好。当乱序比较严重的时候,丢包也会比较严重,所以一般都以丢包指标为主,忽略乱序指标。
三:术语了解
网络参数会看到这些内容:上/下行宽带、上/下行丢包率(%)、上/下行延迟(ms)、DNS延迟(ms)
(1)上/下行宽带
宽带换算单位(Mbps、Kbps 、bps):
Mbps:百万位每秒,指每秒传输百万位(比特)数量的数据
Kbps:千位每秒
bps:位每秒(b)
其中,比如Mb/s中的Mb和Mbps中的Mb意义一样,都表示百万位(比特)数据数量,所以Mbps=Mb/s
MB:百万字节,也称兆字节
KB:千字节
B:字节(B)
注意:MB不等于Mb,其他同理
实际生活,MB/s方便我们对网速理解,它是和数据存储容量挂钩的(所以要把Mbps或Mb/s,去转换为MB/s看),怎么换算?
bit:比特(b),1比特代表1个位,是数字信号数据的最小单位
Byte:字节(B),8个位代表1字节,是计算机存储容量单位
所以8Mbps=8Mb/s=1MB/S
1Mb=1024Kb=1024*1024b
1MB=1024KB=1024*1024B
1MB=8Mb,1Mb=0.125MB(1/8)
运营商说的1M宽带的M是指Mb/s,也就是Mbps,当然实际会有损耗
常见宽带 | 理论最高速率(Mbps) | 理论每秒下载速率(MB/s) | 理论最高速率(KB/S) |
10M | 10Mbps | 1.25MB/s 10/8=1.25 | 1280KB/s 1.25*1024=1280 |
宽带上行下行是指一般ADSL上网方式上行与下行速率。
ADSL全称是Asymmetric Digital Subscriber Line( 即非对称数字用户线路),也叫非对称数字用户环路。是一种新的数据传输方式。属于DSL技术的一种,是一种异步传输模式。
ADSL技术采用频分复用技术把普通的电话线分成了电话、上行和下行三个相对独立的信道,从而避免了相互之间的干扰。
上行带宽即上行速率:本地信息上传到网络的速率。
下行带宽即下行速率:网络信息下载到本地的速率。
上行速率不等于下行速率,在大多数情况下,下行带宽与上行带宽的比率可以达到10:1。
(为什么会有这种情况?宽带运营商限制用户的上行宽带,主要是因为用户的习惯影响的,用户习惯下载,浏览视频等,下行宽带使用较多,而上行使用较少(上传数据),为了上行资源不浪费,于是限制了)
(还有就是下载速度问题?我们平时所使用的宽带说多少M,都是指的下行宽带,比如我办理的是10M的宽带,下载速度只有1M/s左右,其实是因为宽带运行商对下行速度和Windows电脑上面下行速度的单位不一样,Windows电脑的单位是KBbs,而宽带运营上的单位是 Kbbs,1B=8b;比如你办理10M宽带,10Mbps=10240Kbps/8=1280KBps,所以你的最大的下载速度只有1280KBps,也就是只有1M/s左右的样子)
(2)上/下行丢包率
有时候打开网页特别慢,造成这种原因一是网站服务器问题,这个我们无能为力;
二是我们自身网络问题,可能是线路、路由器、ADSL等问题,可以通过查看网络是否存在数据丢包或者网络延迟现象分析。
数据在网络上是以数据包为单位传输的,每包nK,由于种种原因,不可能百分百完成,碰到这种情况,网络会自动让双方的电脑根据协议来补包。如果你的线路好,速度快,包的损失会非常小,补包工作也容易完成,因此可以近似的将你的数据看做是无损传输。但是,如果你的线路较差,数据的损失量就会非常大,补包工作也不可能百分之百完成。在这种情况下,数据的传输就会出现空洞,造成丢包。
丢包率:1 - (指单位时间内接受到的数据包数 / 发送的总数据包数)
查看丢包率:ping(空格) 网址或者IP地址(空格)-t
如果出现请求超时这种,说明丢包了
1、如果PING外网掉包,而内网网关不掉。应该是局域网路由器有问题,就要检查本地路由器。
2、如果内外网都掉包,就检查自己系统。如TCP/IP设置、网卡有没有禁用等,自己系统没问题,然后再检查局域网线路、路由器、ADSL。
(3)上/下行延迟(ms)
有时候我们会说网络很卡,是由于网络在数据包发送和接受过程中,存在较大的网络延迟造成的。
ping一下DNS
ctrl+z
参考:
1-30ms:极快,几乎察觉不出有延迟
31-50ms:良好,没有明显的延迟情况
51-100ms:普通,能感觉出网络有明显延迟,稍有停顿
大于100ms:差,有卡顿,丢包并掉线现象
(4)DNS延迟(ms)
DNS是域名解析服务器,延迟就是你和这个服务器的连接速度, DNS的作用就是把网址解析成IP地址,因为电脑网络连接只能通过IP连接。
四:网络参数参考
五:网络测试点
(1)网络正常下
- 功能正常、页面数据正常
- 切后台、杀进程、锁屏、来电(如播放音频)情况下,功能正常
(2)无网络状态
断网下的测试(发包/回包断网)。关注页面显示与交互,本地数据存储、断网下功能使用(是否会闪退、卡死)等
建议是将页面单独测试,页面的显示和跳转,页面功能点击,无网络到有网络时页面恢复显示、网络恢复后数据上报是否正常
关注点:
- 功能正常
- 是否有网络异常提示(测app是使用toast)
- 是否有缺省样式
- 是否有提示重连(看开发策略,比如蚂蚁断线后会有断线重连的loading锁屏)
- 断网下请求一个完全本地数据的页面显示是否正常
- 重连后功能不能使用或上传服务器的数据有问题(本地数据存储是否正确)(app出现断网下点了某功能,重连后无法使用)(手游出现断线前使用某功能,重连后由于空值报错)
- 本地缓存
举个例子:
断线前进行了一个研究科技的操作,在断线后重连,由于参数为空没做处理引起的空指针报错
举个例子:
进行英雄超募,断线了,由于断线后没做容错处理,导致报错
举个例子:
断线重连 |
序号 | 场景 | 期望结果 | 测试结果 |
1 | 断线下登录 | 弹出重登弹窗 | pass |
2 | 不操作功能,断线60秒 | 有断线loading,60秒后弹出重登弹窗 | pass |
3 | 不操作功能,断线,在60秒内重连 | 重连成功,功能操作正常 | pass |
4 | 操作功能,断线60秒,重登后查看 | 功能未完成,消耗未进行扣减/已完成 | pass |
5 | 操作功能,断线,在60秒内重连 | 功能正常完成,消耗正确 | pass |
6 | 高延时高丢包情况下,玩命加载60秒后 | 弹出重登弹窗 | pass |
7 | 操作功能,高延时高丢包下,在玩命加载60秒内恢复网络 | 功能正常完成,消耗正确 | pass |
8 | 操作功能,高延时高丢包下,在玩命加载60秒后,重登 | 功能未完成,消耗未进行扣减/已完成 | pass |
9 | 操作功能,高延时高丢包下,玩命加载60秒内,断线,60秒后 | 1.有断线loading,60秒后弹出重登弹窗 2.功能未完成,消耗未进行扣减/已完成 | pass |
10 | 操作功能,高延时高丢包下,玩命加载60秒内,断线,60秒内恢复网络 | 功能正常完成,消耗正确 | pass |
11 | 断线下切换其他正常网络(2/3/4G、wifi) | 功能正常 | failed(偶现初始化失败报错) |
(3)网络切换
场景在图片里面有。关注是否有页面的crash以及显示错误、session是否一致、请求堆积处理等
网络切换,超时时,关注数据的加载状态,超时可能出现ANR(application not responding)(无响应) 和 crash(闪退)
(4)弱网测试
前面已经说过,网络条件复杂(WiFi,2/3/4/5G);而且目前三大运营商(移动、电信、联通),所提供的网络制式不太相同;而且用户使用场景(地铁,郊外,室内)也不一样。
所以对客户端的要求比较高,如果不做任何处理的话很可能会崩溃闪退,所以需要做容错处理(异常机制,缓存处理,重连机制,超时机制),弱网测试实质上是借助弱网络的丢包、乱序等发现游戏设计的逻辑异常,其中核心是上、下行丢包及触发重连机制后前后端逻辑一致性
(容错处理:指软件运行时,能对由非正常因素引起的运行错误给出适当的处理或信息提示,使软件运行正常结束。)
- 异常机制:网络异常,没有正常收到服务端数据,需要进行容错处理,不然可能出现奔溃、闪退。
- 超时机制:网络加载要时间,在加载过程中如果你看到菊花或者进度条,起码还有个期盼,比空白页面好多了,但是服务端一直没返回,时间过长用户的耐心也会消磨殆尽。一般用户所能忍受的最佳响应时间是2s,一般情况下超时时间设置为5s,不过这不是一定的,在2G下,5s就太短了(网络慢都还没加载好),但是在4G情况下,5s就相对长了点(网络快),具体根据网络制式来设置超时时间。
- 重连机制:这个机制看需求吧,比如LOL就有
- 缓存机制:这个机制看需求吧,比如新闻,页面显示是之前加载过的内容就可以继续浏览
举个例子:进入某个界面,东西还没加载出来,看到控件就乱点,导致报错
举个例子:领取任务的奖励,任务奖励弹窗还没弹出来,切换任务,这时候报错
举个例子:弱网下,连点升级,然后报错;或者弱网下,新手引导断了
举个断点续传的例子:
断点续传 |
场景 | 结果(0/1) | 备注 |
1:正常更新流程 | 1 | |
2:更新过程中切后台一段时间,重新切回去 | 1 | |
3:更新过程中,锁屏一段时间,重新打开 | 0 | 无法正常更新 |
4:更新过程中,锁屏一段时间,重新打开 | 0 | 无法正常更新 |
5:更新过程中,断网一段时间,重新恢复网络(多次) | 1 | |
6:更新过程中,断网后,杀进程,恢复网络重新登录(多次) | 1 | |
7:弱网更新 | 1 | |
8:更新过程中,切换网络(2/3/4/5G/wifi) | 1 | |
9:更新过程中,弱网至断网后,恢复网络更新 | 1 | |
10:内存较小的情况下更新 | 0 | 黑屏且报错 |
11:更新过程中切到第三方连接再回来 | 0 | 登录页面重叠 |
12:高延时高丢包情况下更新 | 1 | |
13:更新过程中切后台至更新完成,再切回去 | 1 | |
14:新版本覆盖旧版本 | 1 | |
哪些是弱网的测试点???
分析游戏,找出游戏中和网络交互有关的关键点。
1)主流程,如冷热启动,登录、加载(资源/数据)进入游戏、游戏中操作(领取奖励、招募、聊天)
断网后,是否自动重发请求(如果有,可以询问自动重发的请求频率);断网重连后,是否堆积网络请求(比如进行1次支付操作,断网后堆积多个支付请求,恢复网络后因为堆积多个支付请求,是否完成多次支付)
2)涉及支付购买,如购买钻石,充值(容易掉单)
3)涉及领取奖励
4)交互功能:如实时对战,注意帧同步/状态同步
5)断线重连机制(断网提示、超时机制、自动重连、重连频率、失败提示等)
6)弱网下连点
7)长时间无响应UI显示问题:图片加载不出、页面排版混乱,是否有空样式,控件点击报错。
弱网下,请求的数据返回时间长,等待过程中,操作页面的控件很容易出现问题(这些控件依赖数据,在数据加载过程中,设置页面对外暴露的控件为“不可操作”,当数据加载完再释放;也可以使用loading锁屏)
8)状态相关(跳转,刷新):页面上拉,下滑刷新;跳转过程中依赖数据未加载完成,在下个界面闪退或卡死
9)异常提示:响应时间长,是否有loading 或者进度条,安卓长时间无响应报ANR
10)数据回滚:用户登录要下载数据,下载过程中因为网络差,取消或者杀进程,再次登录有可能出现问题(在下载过程中,下载失败后未进行数据回滚,重新下载出现数据重复),可以通过事务处理数据下载逻辑,失败就应用本地数据库进行数据回滚
11)脏数据:比如上传过程中网络较差,可能会导致数据重复写入,形成脏数据
简单来说:弱网测试包括弱网功能、网络切换、用户体验,断线重连等测试情况
(1)弱网功能
- 非wifi环境下进行功能测试,用2G/3G/4G网络模拟高延时、高丢包的异常网络。关注页面响应时间和页面呈现是否完整一致
- 建议是将整体的功能测试用例在弱网下过一轮,同模块分不同网络条件测试
(2)用户体验
- 某操作响应时间(在弱网下loading超5s,用户很容易杀进程)
- 空样式
- 断线后是否有重连机制
- 是否会在弱网下进行应用更新、大流量操作等
(3)其他业务考虑因素
- 竞品标准:最差网络可用性、最差响应时效、数据完整度等。对标行业内的标准和基线,可以提升软件质量的可用性。
- 降级策略:极限环境下的功能降级、极限环境下的兜底处理、网络切换恢复速率等。
- 故障容错:重试机制、数据恢复机制、异常拦截机制等。功能容错和再恢复机制,可以提升用户体验。
- 体验优化:环境网络感知、提示和分流等。
六:测试用例设计和结果输出
可以输出表格,对标竞品,也可以做一下图表
六;弱网测试方案
工具名称 | 描述 | 优缺点 |
Fiddler | 抓包工具,PC端安装,可作为代理服务器 | 能模拟延迟,丢包和带宽不支持 |
Charles | 抓包工具,PC端安装,可作为代理服务器 | 支持延迟、丢包、带宽等,但只支持HTTP/HTTPS |
Clumsy | PC端安装,可作为代理服务器 | 支持延迟、丢包、带宽等弱网配置,使用最简单 |
ATC | Facebook推出,部署在 Linux 系统上,移动端设备通过浏览器访问就可以切换不同的网络环境,支持多台设备连接 | 环境部署复杂 |
WANem | 广域网模拟器,支持从光盘启动,可以运行于虚拟机上,也可以直接刷到物理设备上 | 虚拟机部署不支持上下行网络设置 |
QNET | 腾讯出品,自动化弱网测试,支持adb命令驱动等,总之就是牛 | 双端可用 |
在移动设备进行弱网测试:
1:Android设备连接到PC上,通过Fiddler,Charles,NET-Simulator等工具实现。
比如在PC上装一个Fiddler网络抓包工具,然后再将Android设备的网络代理到PC上,通过在PC上的Fiddler在设置延时来进行弱网络模拟
使用详情:https://blog.csdn.net/weixin_42717928/article/details/119192756
2:在专有服务器上构建弱网络Wi-Fi,移动设备连接该Wi-Fi进行弱网络测试,如Facebook的开源工具ATC(在linux环境下创建热点)和腾讯的Wetest-WiFi。
缺点:开销大、依赖PC端,功能不完善(如丢包,抖动)。
3:苹果自带网速模拟工具network link conditioner,要在Xcode环境下激活手机设置中才会显示开发者选项
4:浏览器开发者工具(Chrome)自带模拟弱网的功能
Network栏,根据需求选择网络状态,比如在线、3G、2G、离线等
5:对于游测来说,可以使用qnet或者clusmy
参考:弱网测试工具-qnet-CSDN博客