admin管理员组

文章数量:1626223

app测试

  • 前言
  • 一、基础概念
    • 1.敏捷模型
    • 2.手机App软件包格式
    • 3.软件包的发布
  • 二、APP专项测试
    • 1.兼容性
    • 2.安装/卸载/升级
    • 3.交叉测试关注点
    • 4.push消息推送测试关注点
    • 5.用户体验测试
  • 三、APP性能测试
    • 1.CPU监控
    • 2.内存监控
    • 3.流量消耗(真机测试)
    • 4.电量消耗(真机测试)
    • 5.启动速度
    • 6.流畅度
    • 7.稳定性
    • 模拟器使用常见异常处理
  • 四、adb命令格式
    • 1.ADB环境准备
    • 2. APP命令
    • 3.稳定性测试(Monkey)
  • 五、fiddler抓取https包与手机抓包配置
    • 1.https抓包
    • 2.抓取手机包
  • 总结


前言

手机APP测试包括功能测试、专项测试、性能测试以及测试常用adb命令的使用。


一、基础概念

1.敏捷模型

  1. 开发模型

       瀑布模型(传统行业):将一个项目作为一个整体,下一个环节依赖上一个环节的完成。
       敏捷模型(互联网):将一个项目拆分为多个子项目,每一个迭代周期完成一个子项目。

  2. 敏捷模型工作流程
       产品规划产品功能列表(Backlog)—>产品组织迭代计划会(拆分需求,确定迭代周期)—>迭代开发(需求评审/开发/测试)—发布评审会

  3. 上线策略(灰度发布)
       灰度发布的理念是:上线部分用户进行使用,若无问题再全部用户发布。

2.手机App软件包格式

   安卓手机:xxx.apk
   苹果手机:xxx.ipa

3.软件包的发布

  1. 发布给测试人员
       a.公共平台,如蒲公英
       b.标注版本号,放在大家都可以访问的地址。
  2. 发布给用户(发布在第三方平台)
      开发将渠道ID写入软件包,上传到不同平台。
       安卓:应用宝、豌豆荚、360手机助手、各品牌应用商店。
       苹果:AppStore iTools

二、APP专项测试

1.兼容性

  • 手机型号:不同品牌,不同机型
  • 操作系统版本:安卓、IOS(可根据在线统计平台数据获取)
  • 分辨率
  • 屏幕:尺寸、类型(刘海屏、水滴屏、曲面屏、折叠屏)
  • 网络:移动数据与wifi
  • 应用兼容性
       a.手机硬件:手机物理按键(音量键、home键、电源键)
       b.外部硬件:蓝牙设备 有线设备
       c.操作系统设置:wlan、时间、定位(屏幕顶部显示与App的兼容)
       d.其他App:具有后台播放功能的App,例如音乐播放器
    如何做兼容性测试
    a.使用不同机型打开软件操作,无异常即可
    b.若公司无太多机型,可以使用云测平台或者模拟器

2.安装/卸载/升级

  • 安装测试关注点
      正常场景:
        a.不同渠道安装
        b.不同操作系统安装
        c.不同路径暗转(手机/SD卡)
      异常场景:
        a.中断安装(关机、断网)中断之后,能否恢复安装
        b.存储空间不足安装
        c.安装时手动取消或者暂停,恢复之后是否能正常安装
        d.正在运行时能否覆盖安装(后台运行/前台运行:需要考虑是否会打断用户操作)
        e.低版本覆盖高版本
        f.卸载后再安装(卸载后是否会清楚数据)
  • 卸载测试关注点
      a.正常卸载(App手动卸载,第三方软件卸载)
      b.运行时卸载(后台运行)
      c.取消卸载(第三方软件卸载时有进度条可以取消;或有二次弹窗取消)
      d.中断卸载(低电关机)
      e.卸载后是否有数据残留(给用户提示,若用户同意残留,可保留数据;若用户拒绝残留,则不保留数据;若不作任何确认提示,默认需要清空残留数据)
  • 升级测试关注点
      a.临近版本升级(上个已发布版本)
      b.跨版本升级(历史发布版本)
      当前版本是n:例如n-2升级到n
      c.从不同渠道升级(应用商场、手机助手)
      d.升级成功提醒(红点提示/消息提示)
      e.升级前是否提醒(消息推送提示升级/强制升级不提醒)
      自研升级系统(日常升级/强制升级)
      使用第三方(日常升级/强制升级)
       强制升级:线上有严重问题时进行强制升级;游戏也会进行强制升级,确保游戏玩家处于同一版本。
      f.当前版本是否具有升级能力(从n升级到n+1)
        让研发给出规则相同,高版本的软件包。

3.交叉测试关注点

 交叉测试又叫做冲突或干扰测试,指一个功能在执行过程中,另一个事件或操作对该过程进行干扰的测试。

  • App运行时接打电话、收发短信、音视频消息、查看应用推送(其他软件的推送\当前软件的推送)。
  • App运行时连接蓝牙设备
  • App运行时接收文件弹窗提醒
  • App运行时使用手机自带的应用(相机、计算器、手电筒)
  • App运行时低点警告、插拔充电器。
  • App运行时旋转屏幕。
  • App运行时切换网络(移动数据和Wifi自动切换)

4.push消息推送测试关注点

push消息:App给你推送的消息
push消息的本质:服务器有更新信息—>推送服务器—>Client App—>用户

  • 推送服务器设置测试点(是否按规则去推送):推送内容、推送时间、推送频率、推送对象
  • 手机端设置测试点
     a.设置不接收消息,将不会收到任何推送
     b.接收消息(消息显示位置):

  - App在前台运行时,消息如何显示。
  - App在后台运行时,消息如何显示。
  - App离线时,消息如何显示。

 c.收到的push消息是否能正常打开跳转。
 d.接收时设置
  - 接收消息但不提醒:手机提醒不会触发
  - 接收消息且提醒:接收消息的同时触发提醒(结合手机模式:静音模式\震动\铃声)
  -接收消息但不显示消息内容(例如:微信发来一条消息)

5.用户体验测试

  • UI界面测试:检查页面布局,设计是否与原型一致,是否合理。
  • 横竖屏测试:横竖屏切换收缩放大是否正常。
  • 易用性测试。
     a.空数据,是否引导提示。
     b.菜单层次是否太深。
     c.完成业务操作的步骤是否太多。
     d.界面中按钮可点击范围是否适中。
    真人体验
  • 可以这对目标用户找符合条件的人员使用。
  • 可以找公司未接触过此项目的同事体验测试。

三、APP性能测试

性能指标描述:某种时间内某个条件执行某种操作下,性能指标如何。 性能测试可以和稳定性测试结合,Monkey测试时使用性能监控工具监控性能数据。
Solopi:Android性能测试工具,用来监控性能数据。
作用:
  基础性能测试:能够记录待测应用的各项性能指标。
 录制回放:可以将用户的操作记录下来,支持在各个设备上进行回放。
 一机多控:支持通过操作一台主机设备来控制多台从机设备,不需要在各个设备上分别进行重复冗余的兼容性测试,从而提升测试效率。

  1. Solopi工具的使用:选择监控性能指标–>开始录制–>执行操作测试软件–>结束录制–>查看录制数据结果

1.CPU监控

  时间片即CPU分配给各个程序的时间,每个程序被分配一个时间段,陈做它的时间片。

  • 如果有基线要求CPU曲线图是否存在长期超过基线的现象;若没有基线,行业默认90%
      CPU占用过高可能出现的问题:手机发烫、页面卡顿、电量消耗严重
      快速恢复方法:清空后台运行的进程

2.内存监控

程序运行时都需要将代码和数据放入内存中,内存不足程序无法正常运行。
内存泄漏:指程序在申请内存后,无法释放以及申请的内存空间(增的远比减的多)。
内存溢出:out of memory指程序在申请内存时,没有足够的空间供其使用;内存泄漏导致内存溢出,内存持续增加突然为0(应用停止运行)

3.流量消耗(真机测试)

将Solopi安装到真机上进行测试。
关注:使用多长时间,消耗了多少流量
如何测试:例如1小时持续刷新,查看流量的消耗情况

4.电量消耗(真机测试)

关注:使用多长时间,消耗了多少电量
常见电量消耗大的场景:
  定位:尤其调用GPS定位
  网络:尤其非wifi环境
  屏幕亮度
  CPU运算:复杂的运算逻辑、死循环会导致CPU负载较高,导致耗电。
  wake_locker(锁屏-解锁):时间和次数。
注意:公司是否有基线(标准)要求,如果有要求,我们需要去检验产品是否达标,如果没有基线,可以和竞品对比测试

5.启动速度

冷启动:App离线状态下启动。时间长
热启动:App在后台运行的状态下去启动。时间短
使用adb命令测试(冷启动/热启动命令相同):
adb shell am start -W 包名/Activity

6.流畅度

FPS:GPU在1s内绘制的帧数,FPS值越高,画面越流畅。
  每秒10-12帧大脑感觉是连续;每秒24帧,感知是流畅的;60帧每秒的流畅度是最佳的;
  测试方法:使用SoloPi选择帧率进行监控,操作对应的测试软件,查看监控结果。

7.稳定性

稳定性测试:通过长时间对应用程序进行无需操作,检查应用程序是否会出现异常。如crash、无响应等。
稳定性测试工具(Monkey)
  介绍:Monkey是由安卓官方提供的命令行工具;Monkey可以模拟用户的触摸、点击、滑动及系统按键等操作(操作事项时随机的),从而实现对App的压力和稳定性测试。
注意事项:
  a.注意手机性能监控数据
  b.注意日志的抓取。

模拟器使用常见异常处理

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

四、adb命令格式

  • ADB是一个通用命令行工具,也是Android软件测试开发工作者常用的调试工具。Solopi等工具的本质也是调用命令。
  • ADB可以用来安装卸载软件、管理安卓系统软件、启动测试、抓取操作日志等。

1.ADB环境准备

 1.安装SDK
 2.安装ADB
 3.配置环境变量(计算机右键-属性-高级系统设置-环境变量-新增系统变量)
 4.启动命令行,运行adb,检查安装结果

2. APP命令

  1. 查看已连接的设备列表:adb devices

  2. 断开连接设备:adb disconnect 手机ip

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

  4. 开启adb服务:adb kill-server

  5. 关闭adb服务:adb start-server

  6. 安装软件包:adb install /路径/软件包文件名(adb install -r -t /路径/软件包文件名)
      -r 表示如果已安装,重新安装apk并保留数据和缓存文件。
      -t 强制覆盖

  7. 卸载软件包:adb uninstall apk包名

8.如何获取apk包名
 a. adb shell pm list pakages:列出手机装的app所有的包名。

 b. adb shell pm list pakages -s:列出系统应用的所有包名

 c. adb shell pm list pakages -3:列出除系统应用的第三方包名

 d. 显示当前打开的软件包名
 Windows:adb shell dumpsys window | findstr mCurrentFocus
 Mac/Linux:adb shell dumpsys windw|grep mCurrentFocus
   包名:软件包在系统中的名字
   Activity名:软件包某个页面的名字

9.清除缓存:adb shell clear 包名

10.启动、停止应用
启动:adb shell am start 包名/activity名(这里启动是启动到某个页面)
停止:adb shell am force-stop apk包名

11.获取启动时间:adb shell am start -W 包名/activity名
  -W:获取启动时间; -S:启动前强行停止应用(配合-W可获得冷启动时间);-R 数字:启动次数

    - ThisTime:当前activity时间
    -TotalTime:应用的启动时间,包括创建进程、App初始化、Activity初始化到界面显示。
    WaitTime:前一个应用activity暂停时间+TotalTime
12.获取日志:adb logcat>本地文件
  过滤信息:adb logcat |findstr 关键字 >本地文件
13.获取内存:adb shell dumpsys meminfo 包名

13.获取CPU:
  a.获取动态cpu占用:adb shell top -s cpu或adb shell top -s 9(不推荐)
    -m:显示最大数量
    -s:按指定行排序

  b.查看执行瞬间cpu占用情况:adb shell dumpsys cpuinfo(推荐)
14.获取App使用流量
  步骤1:获取userId(返回数据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

15.打开开发者模式
设置—>关于手机—>版本号(点击版本号7次进入开发者模式)

3.稳定性测试(Monkey)

语法:adb shell monkey -p 包名 -v 次数>c:\日志.txt
说明:
  -p:指定包名
  -v:log的详细程度(最高支持‘-v -v -v’ 最详细)
  --throttle:单步延时(每步操作间隔,单位ms)
  --tpct-touch:点击事件
注意:这里的次数指的是monkey 操作(滑动、点击等操作)的次数。

五、fiddler抓取https包与手机抓包配置

1.https抓包

fiddler默认只能抓取http的包,要想抓取https的包,电脑需要安装证书

2.抓取手机包

a.安装证书
b.设置代理:wlan–>点击连接的网络–>高级设置–>手动设置代理–>输入电脑的ip及fiddler的端口号

详细步骤见附件:


总结

以上就是介绍的APP测试需要关注的除功能外的专项测试、性能测试、稳定性测试需要考虑的测试点,以及使用到的测试工具及adb命令的介绍。

本文标签: 测试app