移动端APP之手工测试基础2

北城余情 提交于 2020-01-11 23:49:49

1.APP性能测试的分类

  • 后端服务器的性能测试
  • APP客户端的性能测试
  • APP稳定性测试

2.性能测试

  1. 性能测试关注的指标

    1. CPU
    2. 内存
    3. 流量
    4. 电量
    5. 启动时间
    6. 流畅度
  2. GT工具的介绍

    1. 功能
      1. 基础性能指标测试:CPU、内存、流量、电量、流畅度
      2. 获取手机日志
      3. 进行数据抓包
    2. 安装
      1. APK安装包直接安装,只有Android
      2. GT SDK 集成到被测的应用,有Android和IOS
  3. GT工具的使用

    1. AUT界面

      1. 选择被测应用
      2. 选择检测指标
    2. 参数界面

      1. 选择整机的检测指标
      2. 保存检测的数据
      3. 查看检测数据
    3. 命令

      adb devices # 查看当前adb工具和手机是否连接
      192.168.27.101:5555     device
      adb shell # 进入手机终端
      adb pull 手机中文件的路径 电脑文件夹的路径
      
    4. 手机日志

      1. 在日志界面,点击logcat开关
      2. 点击保存按钮,保存日志文件
    5. 手机抓包

      1. 进入插件界面,点击抓包插件
      2. 直接点击开始抓包,点击停止,保存数据
  4. CPU测试

    1. cpu的指标
      1. CPU的状态
        1. 用户态-处理应用程序的时间
        2. 系统态-处理系统内核的时间
        3. 空闲态-处理空闲进程的时间
      2. CPU的使用率
        • CPU的使用率 = (用户态+系统态)/总时间
      3. jiffies
        1. 自开机依赖应用程序消耗的CPU的时间片总数
    2. CPU产生问题的表现
      1. 长时间cpu使用率在90%以上
      2. 手机发热,电量消耗快
      3. 反应变慢,引起ANR(程序无响应)
    3. CPU测试操作
      1. AUT界面-选择被测应用、配置检测指标
      2. 在参数界面-配置参数指标
      3. 在日志界面-打开日志
      4. AUT-启动应用,根据需求进行操作
      5. 参数界面-停止数据采集、保存数据
      6. 在日志界面-保存日志
  5. 内存测试

    1. 内存指标
      1. Private dirty - 私有内存-程序独占的内存,程序退出,内存释放
      2. PSS - 实际使用内存=私有内存+共享内存(平均)
    2. 内存产生的问题
      1. 内存泄漏-申请的内存,程序退出没有及时释放
      2. 内存溢出,程序申请内存时,系统已经没有空闲内存
    3. 内存问题的体现
      1. 内存泄漏 - - PSS指标持续增长
      2. 内存溢出 - - 程序崩溃(Crash)
    4. 扩展
      1. 一个应用程序可以由多个进程组成
      2. 进程是系统分配资源最小单元
    5. 测试内存步骤
      1. AUT-选择被测应用,选择观测指标PSS
      2. 在参数界面-选择MEM内存指标,点击开始采集
      3. 日志-开启日志
      4. 根据需求进行操作应用
      5. 参数界面-点击停止采集,保存内存数据
      6. 日志-保存日志
  6. 流畅度测试

    1. 关注指标: FPS帧率 - - 一秒内GPU渲染的帧数
      1. 至少要达到24帧/秒,流畅度较好
      2. 最高是60帧/秒
    2. 流畅度测试步骤
      1. AUT选择被测应用
      2. 参数 - - 选择FPS监控指标,拖到悬浮窗
      3. 日志 - - 打开日志开关
      4. 根据业务需求操作APP
      5. 参数 - -保存FPS数据,日志—保存日志
  7. 流量测试

    1. 指标 NET

      1. 请求数据量大小
      2. 响应数据量大小
    2. 如何检测

      1. 统计你的整体数据流量的消耗
      2. 进行抓包,通过报文大小进行分析
    3. 流量测试操作步骤

      1. AUT - - 选择被测应用
      2. 参数界面 - - 选择NET
      3. 在插件页面 - - tcpdump插件,打开抓包的开关
      4. 日志 - - 打开日志
      5. 按照需求操作app
      6. 参数 - - 停止采集数据,保存NET数据、日志、抓包数据
    4. 优化流量的场景

      1. 对数据进行压缩
      2. 不用数据格式的采用
      3. 控制访问频次
      4. 只获取必要的数据
      5. 缓存机制
      6. 针对不同的网络类型,采取不同的传输策略
  8. 电量测试

    1. 电量测试的指标
      1. 电流、电压、电量和温度
    2. 测试电量消耗的场景
      1. 定位的功能 - - GPS定位
      2. 网络传输
      3. 手机屏幕亮度
      4. 锁屏和解锁的时间和次数
    3. 测试电量的擦操作步骤
      1. AUT - - 选择被测应用
      2. 插件 - - 选择电量测试的插件
      3. 日志界面 - - 开启日志开关
      4. 设置采样频率、选择检测的指标电流、电量、电压和温度、设置屏幕亮度。点击开始
      5. 根据业务需求,操作手机 - - 考虑耗电的场景
    4. 参数—停止采集,保存数据。日志 - - 保存日志
    5. 电量测试结果分析
      1. 和基准数据对比
      2. 横向对比(竞品分析)
  9. APP启动时间测试

    1. 关注指标:Waittime

    2. 冷启动和热启动

      1. 冷启动 - - app后台进程被杀死,启动app
      2. 热启动 - - app在后台运行,启动app
    3. 如何通过adb命令获取启动时间

      # 获取app的启动时间
      adb shell am start -W 包名/Activity名
      
      ThisTime: 1541
      TotalTime: 1541
      WaitTime: 1549
      
      # 获取包名和界面名
      # 先保证想获取的界面在手机的屏幕上,然后输入命令
      adb shell dumpsys window windows | findstr usedApp
      
      # 学车不APP的包名 和 Activity名
      com.bjcsxq.chat.carfriend/.module_main.activity.MainActivity
      
    4. 启动时间分析

      ThisTime: 当前页面启动的时间
      TotalTime: This Time + 公共代码运行的时间
      WaitTime: Total Time + 系统分配资源消耗的时间
      
      # 测试以WaitTime为准
      
    5. 测试启动时间结果分析

      1. 与基准数据分析(从产品经理那获取,和以往数据进行对比)
      2. 横向对比,和竞品一起测试,不超过竞品的1倍

3.用户体验测试

  • 概念

    • 以用户身份,去感知被测应用,查看应用是否好用、易用、有用等。
    • 提易用性缺陷,尽量要具体,给出依据。
  • 考虑的场景(关注点)

    • UI界面测试

      • 和UI的效果图进行对比
    • 易用性

      • 是否有空数据界面引导
      • 菜单层级是否过深
      • 业务分支是否过多
      • 业务流程步骤是否过多
      • 按钮的可点击范围是否适中
      • 页面中是否有可返回按钮
    • 横竖屏

      • 横竖屏能否正常切换
      • APP中有表格数据的时候,因为横竖屏的显示宽度不一样
    • 兼容手机辅助功能

      • 放大字体
      • 反色
      • 语音切换
      • 多点触控

4.稳定性测试

  • 概念
    • 对app长时间进行无规则,无序的操作,查看app是否闪退崩溃(crash),无响应(NAR)
  • 测试方式
    • Monkey测试
  • 测试的时机
    • 测试后期,已经没有太多bug,项目比较稳定,上线之前,进行Monkey测试

5.你是如何测试APP?

  • 测试策略
    • 进行业务功能测试 – 首要
    • 兼容性测试
    • 安装、卸载和升级测试
    • 交叉事件
    • PUSH消息测试
    • 性能测试
      • CPU
      • 内存
      • 电量
      • 流量
      • 流畅度
      • 启动速度
    • 用户体验测试
    • 稳定性测试
  • 项目上线后的跟踪
    • 跟踪用户的反馈信息
      • Bug反馈
        • 复现bug,如果是bug,提bug,回滚
        • 复现bug,如果不是,忽略
      • 意见和建议
        • 反馈给产品,决定是否在后续版本优化
          卸载和升级测试
    • 交叉事件
    • PUSH消息测试
    • 性能测试
      • CPU
      • 内存
      • 电量
      • 流量
      • 流畅度
      • 启动速度
    • 用户体验测试
    • 稳定性测试
  • 项目上线后的跟踪
    • 跟踪用户的反馈信息
      • Bug反馈
        • 复现bug,如果是bug,提bug,回滚
        • 复现bug,如果不是,忽略
      • 意见和建议
        • 反馈给产品,决定是否在后续版本优化
    • 线上处理bug
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!