• APP专项测试

    APP专项测试

1、兼容性
手机型号:市场主流机型(三星、小米、oppo、华为)
系统版本:安卓4.X-7.X;IOS9.X-12.X
分辨率:10801920、7201280;
屏幕尺寸:5.1、5.5、4.7;屏幕类型:刘海屏、水滴屏、曲面屏、折叠屏
网络:2G\3G、4G、WI-FI
应用兼容性:
与手机硬件(HOME键、电源键、音量调节)
与外部硬件设备兼容(耳机、蓝牙)
与操作系统软件兼容(系统时间、LBS定位、WLAN设置)
与其他APP兼容(后台在播放音乐时,进入动态页面点击动态视频播放,系统如何处理)

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

2、安装

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

3、卸载

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

4、升级(日常升级、强制升级)

  • 从临近版本升级
  • 跨版本升级
  • 不同渠道升级
  • 升级成功提醒(红点提示/消息提示)
  • 升级前是否提醒(消息推送提示升级/强制升级不提醒)
  • 当前版本是否有升级能力(n升n+1,升级规则)

5、干扰测试:

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

6、push推送

  • 推送服务器(是否按照规则推送):
    推送内容
    推送时间
    推送频率
    推送对象

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

7、用户体验:舒适、友好、易用、有用;
ui界面测试(原型图设计是否合理)
横竖屏测试(内容是否展示异常)
易用性测试(空数据提示、菜单层次是否过深、业务操作步骤是否过多、按钮位置是否适中)
手机辅助功能测试(色盲/盲人模式)
在这里插入图片描述
8、其他测试
设置app是否获取该(相机、相册、通讯录)权限
手机端测试需要注意手势,左右滑翻页,横竖屏切换,前后台切换。

  • APP测试性能

    APP测试性能

性能指标:内存、cpu、流量、电量、启动速度、流畅度、稳定性等。

  • 内存
    soloPi工具(只能用于安卓)
    监控指标:PSS(实际使用内存)和Private dirty(私有内存)
    测试过程中实际看PSS
    常见内存问题:
    内存泄漏:内存的曲线持续增长,增的远>释放的内存
    内存溢出:一定是因为有内存泄漏才会出现,因为内存泄漏长了突然降为0(应用停止运行)

异常曲线图:
在这里插入图片描述
正常曲线图:(有增有减)
在这里插入图片描述

  • CPU时间片
    基线:如果有基线要求,CPU曲线图是否长期超过基线的现象)
    如果没有基线,行业默认90%
    CPU占用过高可能出现的问题:手机卡顿、发烫、电量消耗严重(后台运行的程序太多)
    快速恢复:清空后台运行的进程

  • 流量
    使用了多长时间,消耗了多少流量
    测试怎么测:例如:1个小时持续刷新,查看流量消耗
    流量优化方法(打开页面速度过慢,如何优化):
    A:数据的压缩
    B:不同数据格式的采用
    C:控制访问次数
    D:只获取必要的数据
    E:缓存机制
    F:针对不同的网络类型设置不同的访问策略

  • 电量
    使用了多长时间,消耗了多少电量
    测试怎么测:例如:1个小时持续刷新,查看电量消耗
    常见电量消耗大的场景:
    A:定位,尤其是调用GPS定位
    B:网络传输,尤其是非wifi环境
    C:屏幕亮度
    D:CPU运算:复杂的运算逻辑,死循环等会直接导致CPU负载过高,会导致耗电
    E:walk_locker(锁屏-解锁)时间和次数
    注意:公司是否有基线要求,如果没有基线,可以和竞品对比测试

  • 启动速度
    冷启动:APP离线的状态启动,时间长
    热启动:APP后台运行的状态下启动,时间短
    启动速度测试方法:
    adb shell am start -W 包名/Activity名
    在这里插入图片描述

  • 流畅度
    指标:帧率(FPS):一秒内呈现给用户的图片数
    FPS越高画面越流畅(一般在24,60fps以上最佳)

  • 稳定性:长时间对应用程序无序操作,检验应用程序是否出现异常,如闪退、无响应、ANR等。
    稳定性测试工具-------Monkey
    响应时间不达标:
    增加系统硬件(CPU、内存、硬盘)
    优化代码
    优化数据库(建立索引,分表/分库)
    优化网络(对网络增加带宽)

模拟器常见异常处理

问题1:devices offline(设备离线)解决方案:重启模拟器
问题2:dvices not found(找不到设备)解决方案:重启模拟器
问题3:more than one devices emulater(连接了多个设备)
解决方案:
获取设备列表:adb devices
断开不需要的设备:adb disconnect 手机ip

  • ADB命令

    ADB命令

  • 查看设备列表:adb devices

  • 查看设备列表:adb devices

  • 无线连接设备:adb connect 手机ip(手机和电脑处于同一网段)

  • 关闭adb服务:adb kill-server

  • 开启adb服务:adb start-server

  • 安装软件包:adb install /路径/软件包文件名(-r 保留数据 -t强制覆盖 例如:adb install -r -t /路径/软件包文件名)

  • 卸载软件包:adb uninstall app的包名

  • 列出手机装的所有app的包名:adb shell pm list packages
    列出手机系统自带的包名:adb shell pm list packages -s
    列出安装的第三方的包名:adb shell pm list package -3

  • 获取当前窗口(查看进入当前窗口的包名/activity名):
    windows:adb shell dumpsys window | findstr mCurrentFocus
    Mac:adb shell dumpsys window | grep mCurrentFocus

  • 清除应用数据与缓存:adb shell pm clear 包名

  • 启动/停止应用:
    启动:adb shell am start -W 包名/activity名
    注意⚠️:这里的activity名从获取当前窗口步骤取
    停止:adb shell am force-stop包名

  • 获取APP日志:adb logcat > 本地文件
    注意:执行命令后,手机上操作复现步骤
    adb logcat | grep error > 本地文件
    抓取日志后重定向到某个文件
    >:覆盖文件内容
    >>:追加在文件末尾
    使用场景:测试期间记录日志。adb logcat > 本地文件

  • 获取启动时间:adb shell am start -W 包名/activity名(-W::获取时间 S :启动前强停 ,冷启动 -R :数字,启动次数)

  • 获取内存:adb shell dumpsys meminfo 包名
    获取当前执行命令时内存的占用情况:在这里插入图片描述

  • 获取CPU:adb shell top -s cpu 或 adb shell top -s 9(模拟器把cpu改成9)
    adb shell dumpsys cpuinfo(查看当前Cpu占用情况)

-s按指定行排序,-m显示最大数量

在这里插入图片描述

  • 获取APP流量消耗值

1、获取userId
adb shell dumpsys package 包名 | findstr userId
2、获取上行流量(返回数据单位为bytes)
adb shell cat proc/uid_stat/userId/tcp_snd
3、获取下行流量(返回数据单位为bytes)
adb shell cat_proc/uid_stat/userId/tcp_rcv
在这里插入图片描述

  • 获取电量消耗

获取整个设备的电量消耗信息: adb shelldumpsys batterystats | more
获取某个apk的电量消耗信息: adb shelldumpsys batterystats com.Package.name | more
| more:是因为输出信息太多,使用more分篇查看

  • Cash测试步骤

1.打开cmd,输入命令adb devices查看设备连接成功
2.找到patpat包名
adb shell pm list packages
3.monkey测试
adb shell monkey -v -p com.interfocusllc.patpat 60000
adb shell monkey -v -p com.interfocusllc.patpat 60000 --throttle 1000

–throttle:指定用户操作间的时延,单位毫秒。

4.输入日志到对应文件夹
adb logcat -v time *:E | findstr “com.interfocusllc.patpat” > D:\crash.txt
ctrl +C 停止抓取

-v ,log详细程度,-v最详细
time选项,按照时间格式显示日志。
*:E 过滤出所有级别为Error的日志
|:使用管道符将adb logcat输出传递给findstr命令,进一步筛选出包含“com.interfocusllc.patpat”的日志。
>:将输入内容写入D盘crash.txt文件

打开crash.txt文件(或者可以直接在命令框检索)
ctrl +F 搜索以下关键字 查看闪退的日志
程序无响应 搜索“ANR”
force finishing
奔溃问题 “exception”

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐