app专项的网络测试和Fiddler弱网模拟

本文介绍了移动应用在网络环境下的测试方法,包括不同网络条件下的功能验证、性能评估、异常处理等,并提供了弱网模拟的具体步骤。

针对网络环境,先学习几个概念:

(1)断点续传:支持从文件上次中断的地方开始传输数据,而并非是从文件开头传送。

(2)edge网络:首先从发展趋势来说edge算是2.75G,是GSM网络的增强。

                              由于edge是介于现有的第二代移动网络与第三代移动网络之间的过渡技术,因此也有人称它为“二代半”技术

(3)GPRS网络:是介于2G和3G之间的技术,也被称为2.5G


app专项测试

  1. 总结以下几点
    1. 多网测试:无线网络、2G、3G、4G等,断网、网速较差及网络之间的切换时页面的显示等,此外,在非wifi下,还需要注意网络使用量问题
    2. 中断测试:如电话、短信、通知、断电等,软件需要处理这些特殊情况
    3. 安装测试:除了常规的安装、更新、卸载时的用户数据处理外还要考虑到异常场景。包括安装时的中断、弱网、安装后删除安装文件、增量包更新、断点续传;升级测试的提醒机制,升级取消是否会影响原有功能的使用,升级后用户数据是否被清除
    4. 界面测试:如不同尺寸规格的图文在不同屏幕的显示;对于触摸屏手机,测试时还要注意手势,横竖屏切换,多点触控等测试
    5. 弱网测试:需要测试弱网所造成的用户体验,可从功能,性能,异常处理,场景特性等几个维度来考虑。


参考:http://www.smarterapps.cn/index.php?app=home&mod=Appinfo&act=articleDetail&id=49

  • 功能:在弱网下,做功能测试,不仅是次性能测试,也是一种可靠性测试
  • 性能:从app的热启动、页面切换、前后台切换测试app的响应时间。尤其是H5的页面需要测试首屏时间,是否有302跳转,页面大小等,否则会出现各种白屏、闪屏、转菊花等。另外可通过网络请求API的整体时间,response以及body大小来推断是服务器处理的慢,还是需要治理传输包;如果时间很少,body又小,还很慢的话,这下就是客户端程序的问题。
  • 强网络形态场景:有些场景就必须是开着wifi才能做的;比如微信的升级就会监听用户是否插着电,连着wifi,一旦监听到了,方可通知升级
  • 容错机制:主要是考虑弱网情况下带来的不稳定,等待超时 ANR了,或者直接异常闪退了。这些的处理,一定要做的优雅,所以异常信息的文案一定要做的漂亮
  • 重连机制:涉及两块,一块是客户端是否会重发请求,一块是服务端是否接受重连。配合超时机制,多久没有得到反馈才会发起重连,失败几次会不允许重连
  • 无网状态测试:首先无网下页面呈现;其次数据完整性和session一致性;另外,还需要关注的是,无网状态下会不会还不断的请求网络,不断的做网络相关的操作。从无网状态恢复到有网络,会不会有请求堆积?

弱网模拟

使用Fiddler做代理

  1. 安装好后打开fiddler→选择 Tools >Fildder Options > Https
  2. Connection勾选允许远程连接
  3. 在本机命令行输入:ipconfig,找到本机的ip地址。
  4. 打开android设备的“设置”->“WLAN”,找到你要连接的网络,在上面长按,然后选择“修改网络”,弹出网络设置对话框,然后勾选“显示高级选项”。
  5. 在“代理”后面的输入框选择“手动”,在“代理服务器主机名”后面的输入框输入电脑的ip地址,在“代理服务器端口”后面的输入框输入8888

使用Fiddler进行弱网模拟

  1. 打开Fiddler,点击Rules-->点击Customize Rules;(或者Ctrl+R)
  2. Ctrl+F组合键调出搜索对话框,键入simulate进行搜索,找到如下代码框:

    修改其中的数字,已达到限定不同网速的效果。数字的含义为每KB数据所需要的时间(ms)

  3. 打开弱网模拟功能:点击Rules(或者Alt+R);点击Performance-->点击Simulate Modem Speeds,完成弱网模拟功能的打开。

易混淆的测试术语

  1. 性能测试:是为了获得系统在某种特定的条件下(包括特定的负载条件下)的性能指标数据;而负载测试及压力测试是为了发现软件系统中所存在的问题,包括性能瓶颈、内存泄漏等
  2. 负载测试:是模拟实际软件系统负荷,通过不断加载来观察不同负载下系统的响应时间和数据吞吐量、系统占用的资源(如CPU、内存)等。
  3. 压力测试:是在强负载下的测试,查看应用系统在峰值使用情况下操作行为,从而有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。
  4. 容错性测试: 输入异常数据或进行异常操作,以检验系统的保护性。如果系统的容错性好,系统只给出提示或内部消化掉,而不会导致系统出错甚至崩溃;倘若系统一但出问题,系统能自启动,数据不会丢失

<think>我们正在讨论移动App测试需要覆盖的方面。根据之前的引用,我们可以总结出以下测试类型: 引用[1]提到移动App测试主要针对AndroidiOS两大系统,需要进行多种测试。 引用[2]强调了兼容性测试(手机型号、系统版本、屏幕分辨率、网络兼容性、硬件兼容性、软件兼容性)以及安装、卸载、升级测试。 引用[3]指出网络测试的重要性,模拟复杂网络情况(如地铁、隧道等)。 引用[4]则补充了安装卸载测试的具体点(是否可以卸载,重复安装等)。 因此,我们可以将App测试需要覆盖的方面归纳如下: 1. **功能测试**:确保App的各项功能符合需求,包括正常流程异常流程。 2. **兼容性测试**: - 操作系统版本(如Android 5.0~12.0, iOS 9.0~15.0等) - 设备型号(覆盖主流品牌型号,如华为、小米、iPhone等) - 屏幕分辨率(多种分辨率适配) - 网络兼容性(2G/3G/4G/5G/WiFi,特别是网络切换情况) - 硬件兼容性(如摄像头、蓝牙、耳机、物理按键) - 软件兼容性(与其他App的交互,如地图、支付等) 3. **安装、卸载、升级测试**: - 安装:不同来源(应用商店、直接下载安装包等) - 卸载:通过桌面卸载或应用内卸载,取消卸载是否正常 - 升级:覆盖安装、跨版本升级、升级后数据保持 4. **性能测试**: - 响应时间 - 资源消耗(CPU、内存、电量、流量) - 稳定性(长时间运行是否崩溃) 5. **网络测试**: - 模拟不同网络环境(、断网络切换) - 网络延迟丢包情况下的表现 6. **安全测试**: - 数据加密 - 权限管理(是否过度申请权限) - 漏洞扫描(如SQL注入、XSS攻击防护) 7. **用户体验测试**: - 界面布局 - 操作便捷性 - 交互设计 8. **稳定性测试**(通常通过Monkey测试等): - 随机操作下App的崩溃率 9. **回归测试**:确保修复问题后原有功能不受影响 此外,还有中断测试(来电、短信等打断操作)离线测试(无网络情况下使用)等。 根据以上内容,我们可以生成相关问题。 </think>### 移动App测试覆盖方面详解 根据行业实践引用内容,移动App测试需覆盖以下核心方面[^1][^2][^3][^4]: #### 1. **功能测试** - 核心业务流程完整性(登录/支付/数据处理等) - 边界值及异常输入处理(如超长文本/非法字符) - 多状态转换验证(前后台切换/中断恢复) - 数据持久性(重启后数据保存完整性) > *典型用例:支付流程中断后能否恢复订单状态[^1]* #### 2. **兼容性测试**(关键维度) | 测试维度 | 覆盖要点 | 工具参考 | |----------------|----------------------------------------|------------------| | **设备兼容** | 主流品牌/型号(覆盖高中低端机型) | AWS Device Farm | | **OS兼容** | Android 5.0~14/iOS 12~17 版本覆盖 | Firebase Test Lab| | **分辨率适配** | 全面屏/折叠屏/平板特殊比例 | Xcode Simulator | | **网络兼容** | 2G/3G/4G/5G/WiFi切换及模拟 | Network Link Conditioner | | **软硬件交互** | 蓝牙/GPS/摄像头调用及第三方App交互 | Android Debug Bridge | #### 3. **安装卸载测试** - **安装验证**: - 应用商店/APK直装/扫码安装等渠道 - 安装包完整性校验(MD5值比对) - **卸载验证**: ```bash adb uninstall com.example.app # Android卸载命令 ``` - 残留文件清理(缓存/数据库/SD卡文件) - **升级场景**: - 跨版本升级(v1.0→v3.0)的数据迁移 - 覆盖安装时配置项继承 #### 4. **专项测试** - **网络容灾测试**: - 隧道/电梯等场景模拟(可通过Fiddler限速) - 断重连后的数据同步机制 - **性能测试**: - 启动时间(冷启动≤1.5s) - 内存泄漏检测(Android Profiler/Instruments) - 电量消耗(Battery Historian分析) - **安全测试**: - 敏感数据加密(HTTPS/SSL Pinning) - 越权访问防护(OWASP MASVS标准) #### 5. **用户体验测试** - UI一致性(遵循Material Design/HIG规范) - 交互反馈延迟(触控响应≤100ms) - 无障碍支持(TalkBack/VoiceOver兼容) - 多语言显示(RTL布局/文字截断处理) #### 6. **稳定性测试** - **Monkey压力测试**: ```bash adb shell monkey -p com.example.app -v 10000 # 万次随机操作 ``` - 崩溃率监控(Firebase Crashlytics集成) - ANR(Application Not Responding)检测 > *注:测试覆盖需遵循「测试金字塔」原则,70%精力投入单元/接口测试,30%用于UI及专项测试[^3]* ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值