APP端网络测试与弱网模拟!

当前APP网络环境比较复杂,网络制式有2G、3G、4G网络,还有越来越多的公共Wi-Fi。不同的网络环境和网络制式的差异,都会对用户使用app造成一定影响。另外,当前app使用场景多变,如进地铁、上公交、进电梯等,使得弱网测试显得尤为重要。

如果app没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到APP闪退、ANR、数据丢失等问题。因此,app网络测试,特别是弱网测试尤为重要。本文梳理了app网络测试要点和弱网测试常用模拟方法,让大家对网络测试有一个全面的认识。

01、APP网络测试要点

1、各个网络下功能测试

  • 不同网络下,检查基本功能点

  • 运营商移动、联通、电信接入点测试(需要使用实际SIM卡)

  • 若有智能DNS功能,还需要关注运营商判断/归类

  • 高延时、高丢包、无网、假热点也可归入弱网测试范畴

2、网络切换测试
部分APP有智能DNS功能,网络切换涉及DNS切换。
网络切换检测机制:Android可以监听系统广播

3、弱网测试
用户体验和异常处理是各个网络场景都需要关注的,只是弱网场景下,需要重点关注。

02、弱网测试模拟

1、什么样的网络属于弱网

低于2G速率的时候都属于弱网,3G也可划分为弱网,一般Wi-Fi不划入弱网测试范畴。

2、如何进行弱网测试
  • SIM卡的网络切换
    手机-设置-移动网络设置-网络类型选择
    3G、4G卡都可以设置关闭3G/4G,只走2G网络。

  • 具体弱网场景测试,常见场景包括:地铁/巴士、电梯、楼梯间、停车场

  • 使用虚拟机模拟网络速度,如用树莓派搭建的弱网测试仪

  • 使用软件进行网络代理,模拟不同的网络带宽、延时率、丢包率

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:1150305204【暗号:csdn999】
 

3、弱网模拟常用工具

方法一:charles弱网模拟

配置参数解析:

  • bandwidth —— 带宽,即上行、下行数据传输速度

  • utilisation —— 带宽可用率,大部分modern是100%

  • round-trip latency —— 第一个请求的时延,单位是ms

  • MTU —— 最大传输单元,即TCP包的最大size,可以更真实模拟TCP层,每次传输的分包情况

  • Releability —— 指连接的可靠性。这里指的是10kb的可靠率。用于模拟网络不稳定

  • Stability —— 连接稳定性,也会影响带宽可用性。用于模拟移动网络,移动网络连接一般不可靠

具体网络设置参考:

Fiddler也可以进行弱网环境模拟

方法二:chrome的webview调试工具弱网模拟

使用chrome的webview调试工具,缺点是只适用于web页面的弱网模拟。

具体步骤:

  • 应用打开webview调试功能,具体如下:

 
  1. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {undefined

  2. WebView.setWebContentsDebuggingEnabled(true);

  3. }

  • 手机链接电脑,运行APP,进入具体H5页面;

  • chrome的DevTools中打开Webview:进入chrome://inspect/#devices,会显示已经连接设备,选中待调试webview的inspect network页面,No throttling下拉框,可以进行网络模拟。

方法三:

iOS手机自带Network Link Conditioner 弱网模拟

iPhone手机打开开发者选项:
设置-开发者选项 > Network Link Conditioner 入口。
系统已经内置常见网络配置,也可以增加自定义配置。

具体配置参数:

  • in Bandwidth 下行带宽,即下行网络速度

  • In packet loss 下行丢包率

  • in delay 下行延迟,单位ms

  • out bandwidth 上行带宽

  • out packet loss 上行丢包率

  • out delay 上行延迟

  • DNS delay DNS 解析延迟

  • protocol 支持Any,IPV4、IPV6

  • interface 支持Any,WI-Fi,cellular(蜂窝网)

具体步骤参考:

 

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:1150305204【暗号:csdn999】

网络测试经典问题分享

  • 场景一:弱网下,页面加载过程,程序闪退
    原因:webview超时处理未在UI线程。toast、关闭页面等操作需要在UI线程

  • 场景二:302跳转页面,达到内置超时阀值后,webview自动关闭
    原因:业务有页面加载超时自动关闭的逻辑,超时机制未考虑302场景

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/599533.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ribbon客户端负载均衡

简介 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具。 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等…

【操作系统】输入/输出系统

目录 l/O系统的功能、模型和接口 l/O设备和设备控制器 中断和中断处理程序 设备驱动程序 与设备无关的I/O 用户层的I/O软件 缓冲区管理 磁盘性能概述和磁盘调度 l/O系统的功能、模型和接口 I/O系统管理 1)主要对象: I/O设备和对应的设备控制器 …

IP代理测试:关于Ping测试你需要知道的一切干货

您在访问互联网时是否遇到过持续滞后或花费很长时间等待网站加载的情况?为了避免这种情况,您可以测试 ping 以查看连接速度。如果您使用代理,此 ping 测试还会显示代理服务器的响应速度。 ping 测试是一个很有价值的工具,可以帮助…

C++ 释放指针

在C中,释放指针通常使用delete或delete[]操作符; 如果指针指向的是单个对象,可以使用delete操作符进行释放; 在释放完内存后,最好将指针置为nullptr,以避免出现悬空指针(dangling pointer&#…

浅谈指数移动平均(ema)

经常在各种代码中看到指数移动平均(比如我专注的网络传输领域),但却不曾想到它就是诠释世界的方法,我们每个人都在被这种方式 “平均”… 今天说说指数移动平均(或移动指数平均,Exponential Moving Average)。 能查到的资料都侧重于其数学形…

且看迥然不同的 diff

文章目录 且看迥然不同的 diff语法默认比较两个文件并排显示方便比较context模式比较unified模式比较对比时忽略空格更多信息且看迥然不同的 diff Linux diff 命令用于比较文件的差异。 当然还有很多比较文件的专业工具,但是如果在Linux命令行,这个是最原始最初的,也是开机…

【Linux Shell】4. 数组

文章目录 【 1. 数组的定义 】【 2. 读取数组 】【 3. 关联数组 】3.1 关联数组的定义3.2 关联数组元素的调用 【 4. 获取数组中的所有元素 】【 5. 获取数组的长度 】 数组中可以存放多个值。 Bash Shell 只支持一维数组(不支持多维数组),初…

算法训练第五十九天|503. 下一个更大元素 II、42. 接雨水

503. 下一个更大元素 II: 题目链接 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按数组遍历顺序,这个数字之…

AutoCAD 中镜像 操作

在 AutoCAD 中,镜像是一种常用的操作,可以在绘图过程中快速进行镜像对称。以下是 AutoCAD 中进行镜像操作的常用快捷键命令: 1. 镜像命令:MIRROR 或 MI - 输入 MIRROR 或 MI,然后按 Enter 键启动镜像命令。 2. 指定第一点:F 或 F+Enter - 输入 F 或 F+Enter,然后选择…

影响服务器正常使用的有哪些因素

对于网站优化来说,网站服务器的优化绝对是基础。不管是用户还是搜索引擎对于网站的打开速度都是没有太多耐心的, 所以网站优化的就是要保证网站服务器稳定,网站正常且快速的打开 1.用户体验较差 现在越来越强调用户体验,设想一…

imgaug库指南(五):从入门到精通的【图像增强】之旅

引言 在深度学习和计算机视觉的世界里,数据是模型训练的基石,其质量与数量直接影响着模型的性能。然而,获取大量高质量的标注数据往往需要耗费大量的时间和资源。正因如此,数据增强技术应运而生,成为了解决这一问题的…

游戏化教学在高校平台基础课程中的实践与学习体验提升

在高职计算机学院,无论计算机应用技术、软件技术、大数据应用技术还是人工智能应用等不同专业方向的学生,首先要接触和掌握一系列的基础平台课程。这些课程不仅包括政治、英语、数学等文化基础知识内容,更关键的是涉及网页设计基础、编程基础…

智慧校园全空间三维电子沙盘系统

一、概述 易图讯科技(www.3dgis.top)采用大数据、云计算、虚拟现实、物联网、AI等先进技术,自主可控高性能WebGIS可视化引擎,支持多用户客户端通过网络请求访问服务器地图和专题数据,提供地理信息数据、专题数据的并发…

MW Open - 高效率的API接口管理工具

本文将会详细介绍 MW Open,一个高效率的 API 接口管理工具,并提供相关代码示例。 一、简介 MW Open 是一款开源的 API 接口管理工具,支持管理 API 接口、测试 API 接口、生成 API 文档等功能。MW Open 拥有简洁明了的接口管理界面&#xff…

对象克隆学习

假如说你想复制一个简单变量。很简单: int apples 5; int pears apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short,float,double.long)同样适用于该类情况。 但是如果你复制的是一个对象,情况就有些复杂了。 …

vue插件--xterm封装

安装 npm install xterm xterm-addon-fit -D两种模式 log:日志输出shell:终端命令 <template><div :id"id" class"xterm"></div> </template> <script> import { defineComponent, onMounted, onBeforeUnmount, watch, n…

Centos7.9和Debian12部署Minio详细流程

一、安装minio Centos wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230227181045.0.0.x86_64.rpm -O minio.rpm sudo dnf install minio.rpmDebian wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20230227181045.0…

axios的七大特性

1、在浏览器中发送 XMLHttpRequests 请求&#xff1b; 2、在 node.js 中发送 http请求&#xff1b; 3、基于 promise 的 HTTP 库&#xff0c;支持promise所有的API 4、拦截请求和响应&#xff1b;&#xff08;修改请求数据&#xff0c;只能用在PUT,POST和PATCH这几个请求方法&…

代理(Proxy)模式

代理&#xff08;Proxy&#xff09;模式介绍 作用&#xff1a;通过代理可以控制访问某个对象的方法&#xff0c;在调用这个方法前做前置处理&#xff0c;调用这个方法后做后置处理。&#xff08;即&#xff1a; AOP的微观实现&#xff01;&#xff09; 核心角色 抽象角色(接口…

C++初级(三)

我们这里还是在C基础上进行对C基础语法的补充学习&#xff01; 一.C数组 C数组大体和C相同&#xff0c;但是C数组还是有一定的区别的。 我们先看看C和C数组共同的易错点知识&#xff1a; 1.数组只能一次初始化。 2.如果对数组只进行一部分初始化&#xff0c;那么其他未初始…