目录

APP测试要点

目标

一、APP专项测试

1.1 兼容性

1.2 安装

1.3 卸载

1.4 升级

1.5 干扰测试(交叉事件测试)

1.6 Push推送

1.7 用户体验

二、 性能测试工具

2.1 APP性能测试工具介绍 —— SoloPi简介

2.2 APP性能测试工具 —— SoloPi使用

三、APP性能测试

3.1 CPU

3.2 内存

3.3 流量

3.4 电量

3.5 启动速度

3.6 流畅度

3.7 稳定性(monkey)

3.8 模拟器使用常见异常处理


APP测试要点

目标

能够实现APP的专项测试(兼容性、安装卸载升级、干扰测试(交叉)、Push推送、用户体验)
能使用solopi完成APP的性能测试(CPU、内存、流畅度、流量、电量、启动速度、稳定性)

能独立说出常用的APP命令格式(内存、CPU、安装、卸载、流量、启动时间、抓取日志)

能使用命令测试APP客户端的稳定性(monkey)

一、APP专项测试

1.1 兼容性

  • 手机型号不同品牌商,不同机型(华为P30)
  • 操作系统版本:
    • 安卓:根据在线统计平台数据获取
    • iOS
  • 分辨率
  • 屏幕
    • 尺寸:5.1. 5.5 4.7
    • 类型: 刘海屏 水滴屏 曲面屏 折叠屏
  • 网络: 移动数据 和 WiFi
  • 应用兼容性
    • 手机硬件: 手机上的物理按键(音量键 home键 电源键)
    • 外部硬件: 蓝牙设备 有线设备
    • 操作系统设置: wlan 时间 定位
    • 其他APP: 具有后台播放功能的APP,例如音乐

如何做兼容性测试:
使用不同的机型打开软件操作,无异常即可
若公司没有太多机型,可参考云测平台或者模拟器

如何选择品牌、 机型、 系统、 分辨率网络?
查看线上排名网站( 流量研究院: https://mtj.baidu.com/data/mobile/device

1.2 安装

  • 正常场景
    • 从不同渠道安装
    • 不同操作系统安装
    • 不同的路径安装(手机\SD卡)
  • 异常场景
    • 中断安装(关机 断网),中断之后能否恢复安装
    • 存储空间不足安装
    • 安装时手动取消或暂停.恢复之后是否能正常安装
    • 正在运行时能否覆盖安装(后台运行\前台运行:需要考虑是否会打断用户操作)
    • 低版本覆盖高版本
    • 卸载后再安装(卸载后是否会清除数据)

1.3 卸载

  • 正常卸载(手机卸载\使用第三方软件卸载)
  • 运行时卸载(后台运行)
  • 取消卸载(第三方软件\二次弹窗确认时取消)
  • 中断卸载(关机)
  • 卸载后数据残留(给用户提示确认,如果用户同意残留,可以保留数据;如果用户拒绝残留,不可以保留数据)(如果不做任何确认提示,默认需要清空残留数据)

1.4 升级

  • 从临近版本升级(上一次发布的版本)
  • 跨版本升级(历史发布过的版本)
    • 当前版本是n: n-2 升级n
  • 从不同渠道升级
  • 升级成功提醒(红点提示\消息提示)
  • 升级前是否提醒(消息推送提示升级\强制升级不提醒)
    • 自己自研升级系统(日常升级\强制升级)
    • 使用第三方(日常升级\强制升级)
  • 当前版本是否具有升级能力(n升级n+1,升级规则)

1.5 干扰测试(交叉事件测试)

  • 接打电话
  • 收发短信
  • 音视频电话
  • 查看应用推送(其他软件的推送\当前软件的推送)
  • 连接蓝牙设备
  • 接收文件弹窗提醒(确认接收\拒绝接收)
  • 旋转屏幕
  • 切换网络(移动数据和WiFi自动切换)
  • 手机自带应用(打开相机\手电筒\计算器)
  • 低电提醒
  • 插拔充电器(充电动画) 

1.6 Push推送

  • 推送服务器(是否按照规则去推送)
    • 推送内容
    • 推送的时间
    • 推送频率
    • 推送的对象
  • 手机端
    • 不接收消息,将不会收到任何推送
    • 接收消息
      • APP在前台运行时,消息如何显示
      • APP在后台运行时,消息如何显示
      • APP离线,消息如何显示
  • 消息能否打开
  • 接收时设置
    • 接收消息但不提醒:手机提醒不会触发
    • 接收消息且提醒: 接收消息的同时触发提醒 (结合手机模式:静音模式\震动模式\;铃声)
    • 接收消息但不显示消息内容(例如:微信发来一条消息)

 推送平台在哪里?推送的用户是谁?

1.7 用户体验

  • UI界面测试(原型图设计是否合理)
  • 横竖屏测试(内容展示是否异常)
  • 易用性测试(空数据提示\菜单层次是否过深\业务操作步骤是否过多\按钮位置是否适中)
  • 手机上的辅助功能(色盲模式\盲人模式) 

真人体验

  • 可以针对目标用户去找符合条件的人
  • 可以找小白用户体验(公司内部其他团队未接触过该项目的人)

二、 性能测试工具

2.1 APP性能测试工具介绍 —— SoloPi简介

SoloPi: 是一个无线化、 非侵入式的 Android 自动化工具, 具备录制回放、 性能测试等功能。


作用如下:

  • 基础性能测试: 能够记录待测应用的各项指标, 可以在悬浮窗中观察实时更新的数据, 也可以对性能数据进行录制, 在录制结束后查看图表; 同时, 还支持性能加压, 能够对CPU、 内存与网络环境进行限制, 复现应用在性能较差、 网络环境不佳场景下的表现。
  • 录制回放: 通过SoloPi执行用例步骤, 能够将用户的操作记录下来, 支持在各个设备上进行回放, 这一切都能够在手机上独立完成。

  • 一机多控:支持通过操作一台主机设备来控制多台从机设备, 不需要在各个设备上分别进行重复冗杂的兼容性测试, 能够极大提升兼容性测试的效率。

SoloPi安装:

  1. 可独立安装的 SoloPi( APK, IOS无该版本) , 像普通APP一样安装。

2.2 APP性能测试工具 —— SoloPi使用

注意事项: SoloPi使用时, 需要申请悬浮窗权限, adb权限, 读写权限

资料分享:

社区地址APK下载地址GitHub地址gitee地址

  1. 打开SoloPi, 选择性能测试

  2. 选择被测应用, 勾选监控指标, 勾选后悬浮窗会出现在手机屏幕上

  3. 点击开始监控, 随后打开被测APP应用, 开始测试

  4. 结束监控,保存录制数据,查看数据采集结果

  5. 结果展示

         可下拉选择其他性能项

三、APP性能测试

性能: 是衡量APP质量的一个重要指标
常见的性能指标有: 内存, CPU, 流量, 电量, 启动速度, 流畅度、 稳定性


性能指标描述: 一定是某种时间内某种条件执行某种操作,性能指标如何
性能测试可以考虑和稳定性结合,monkey测试时使用性能监控工具监控性能数据.
例如: 2小时内持续刷新操作,性能如何?
持续运行8小时,性能如何

3.1 CPU

基线:如果有基线要求,CPU曲线图是否存在长期超过基线的现象(min)

如果没有基线,行业默认90%
CPU占用过高时可能出现的问题:
手机发烫
页面卡顿
电量消耗严重
快速恢复:清空后台运行的进程


下图 : 蓝色曲线是问题曲线(长时间超过基线),红色曲线是正常曲线

3.2 内存

内存泄露:内存的曲线持续增长(增的远比减的多)
内存溢出:一定是因为有内存泄露才会出现.内存持续增加突然降为0 (应用停止运行)


异常曲线图:
 

 正常曲线图

3.3 流量

  • 使用了多长时间,消耗了多少流量
  • 测试怎么测: 例如: 1小时持续刷新,查看流量消耗
  •  流量优化方法:
    • 数据的压缩
    • 不同数据格式的采用
    • 控制访问的频次
    • 只获取必要的数据
    • 缓存机制
    • 针对不同的网络类型设置不同的访问策略

3.4 电量

  • 使用了多长时间,消耗了多少电量
  • 测试怎么测: 例如: 1小时持续刷新,查看电量消耗
  • 常见的电量消耗较大的场景
    • 定位,尤其是调用 GPS 定位。
    • 网络传输,尤其是非 Wi-Fi 环境。
    • 屏幕亮度
    • CPU 运算:复杂的运算逻辑、死循环等会直接导致CPU负载过高,会导致耗电;
    • wake_locker(锁屏-解锁)时间和次数

注意: 公司是否有基线要求,如果有要求,那么我们需要去检验产品是否达标;如果没有基线,可以和竞品对比测试

3.5 启动速度

冷启动: APP离线的状态下启动; 时间长
热启动: APP后台运行的状态下启动. 时间短
命令获取: adb shell am start -W 包名/activity名

3.6 流畅度

  • 帧率(FPS): 每秒切换多少帧
  • 60fps为最佳 

3.7 稳定性(monkey)

  • 注意性能数据监控
  • 注意日志收集 

3.8 模拟器使用常见异常处理

问题1: devices offline (设备离线)

        解决方案:重启模拟器

问题2: devices not found (找不到设备)

        解决方案:重启模拟器

问题3: more than one devices emulater(连接了多个设备)
        获取设备列表: adb devices
        断开不需要的设备: adb disconnect 手机ip

Logo

纵情码海钱塘涌,杭州开发者创新动! 属于杭州的开发者社区!致力于为杭州地区的开发者提供学习、合作和成长的机会;同时也为企业交流招聘提供舞台!

更多推荐