admin 管理员组

文章数量: 887021

备注:未经博主允许禁止转载

个人笔记(整理不易,有帮助,收藏+点赞+评论,爱你们!!!你的支持是我写作的动力)

笔记目录:学习笔记目录_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)
10M10Mbps1.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
ClumsyPC端安装,可作为代理服务器支持延迟、丢包、带宽等弱网配置,使用最简单
ATCFacebook推出,部署在 Linux 系统上,移动端设备通过浏览器访问就可以切换不同的网络环境,支持多台设备连接环境部署复杂
WANem广域网模拟器,支持从光盘启动,可以运行于虚拟机上,也可以直接刷到物理设备上虚拟机部署不支持上下行网络设置
QNET腾讯出品,自动化弱网测试,支持adb命令驱动等,总之就是牛双端可用

在移动设备进行弱网测试:

1:Android设备连接到PC上,通过Fiddler,Charles,NET-Simulator等工具实现。

比如在PC上装一个Fiddler网络抓包工具,然后再将Android设备的网络代理到PC上,通过在PC上的Fiddler在设置延时来进行弱网络模拟

使用详情:https://blog.csdn/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博客

本文标签: 怎么做 网络测试