十一、专项测试实战(一)

1、基本的测试checklist和手段

  • 业务测试
  • 回归测试
  • 专项测试
  • 质量监控
image.png

2、非功能(专项)测试

  • 业务测试(面向新需求)
  • 回归测试(面向已交付需求)
  • 非功能测试:针对专项质量问题的测试
    • 移动端性能问题(硬件相关,比如cpu、mem、disk、network、gpu)
    • 移动端场景问题(场景相关,比如弱网测试、兼容性测试、国际化)

3、专项测试(用户维度)

  • 崩溃(Crash,弱网)
  • 卡顿(掉帧、gc、cpu)
  • 响应慢(启动时间、交互响应、H5加载)
  • 发热(cpu,mem、io、network、gps等硬件使用)
  • 掉电快(硬件占用)
  • 兼容性问题(机型覆盖、回归)

4、专项测试(技术维度)

  • 崩溃:自动遍历、monkey测试、横竖屏切换、快速进退
  • 卡顿(掉帧、gc、cpu):卡顿测试、内存泄漏测试、method profile
  • 响应慢(启动时间、交互响应、H5加载)∶冷热启动、界面切换、h5性能测试
  • 发热(cpu,mem、io、network、gps等硬件使用)
    • method profile、gc统计、io统计、流量统计、硬件使用统计、耗电量分析
  • 兼容性问题(机型覆盖、回归)
    • 兼容性测试、自动化测试、自动遍历、monkey测试

5、App性能

Activity启动流程

image.png

主要流程

  • Application OnCreate
    • 加载第三方的sdk
  • Activity OnCreate
    • 加载自身的逻辑
    • 发送远程数据请求xxx.json
    • 渲染界面List

响应时间

  • app启动:首次安装启动、冷启动、暖启动、热启动
  • app交互:事件响应、内部加载速度、首屏渲染
  • 接口性能: dns、http/https、download、json
  • h5性能:cache、资源加载、dom、page

app启动性能度量指标

  • 首次安装启动:首次安装会耗费较多的时间初始化,比如补丁下载、缓存数据
  • 冷启动:进程不存在
  • 暖启动:进程存在,界面不存在
  • 热启动:界面对象仍然存在,只是从后台前置到前台
  • 首屏启动:第一屏加载完整

UI性能检测常用办法

  • adb logcat
  • 录屏+视频拆帧
  • uiautomator等自动化工具200ms巡检界面变化
  • traceview
  • 硬埋点

logcat中的性能数据

  • package=com.xueqiu.android
  • 清理缓存数据: adb shell pm clear $package
  • 停止进程: adb shell am force-stop $package
  • 启动app: adb shell am start -S-W $package /.view.WelcomeActivityAlias
  • 获取数据: adb logcat lgrep-i displayed

代码性能剖析

  • 基于dalvik art虚拟机的剖析技术
  • traceview
  • android studio自带的profile面板
  • 火焰图
  • 调用图
  • cpu时间与user时间


    image.png

6、webview性能分析

image.png
  • 获取小程序的性能指标,使用inspect工具

    • performance.timing,获取总共统计的性能指标
    • performance.getEntries,获取所有资源的性能指标
      image.png

      image.png
  • 通过adb shell cat /proc/net/unix | grep devtoo,查找Android上跨进程通讯的句柄,通过这些句柄可以找到webview的组件,从而找到对应的进程。

    image.png

真机webview性能测试

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容