zoukankan      html  css  js  c++  java
  • 安卓专项测试

    APP性能测试指标如下:
    1、资源消耗
    2、内存泄露
    3、电量功耗
    4、耗时
    5、网络流量消耗
    6、移动终端相关资源利用率
    7、帧率
    8、渲染等等....
    测试流程概况起来包括但不限于以下几点:
    组件初始化时间(业务方埋点)
    APP启动时间(冷启动、热启动)
    CPU占用(活动、静默状态)
    PSS内存占用(活动、静默状态)//不能root手机,所以没有取USS电池温度变化(活动、静默状态)FPS硬件渲染掉帧数单帧渲染平均时间单帧检测处理时间(业务方埋点)
    OS版本:4.4、5.0、5.1、4.2、4.3、6.0、4.0
    品牌覆盖:华为、小米、Nexus、VIVO、奇酷、酷派、三星、锤子
    分辨率覆盖:1920X1080、2560X1440、1280X720、854X480
    业务场景:针对业务特点进行设置的测试场景,在此不表。
    FPS测试:
    1、概念: FPS是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS是测量用于保存、显示动态视频的信息数量。每秒钟帧数愈多,所显示的动作就会愈流畅。
    卡顿人体感觉标准:帧率不高于16ms,针对Android系统。 此时在命令输出中会有一个矩阵数据,计算矩阵中帧率大于16的点所占比例,即为卡顿比。
    方案如下:
    1. 通过命令: dumpsys SurfaceFlinger | grep "|....|" 获取当前置顶窗口名称
    2. 历史记录127行数据,按60帧算可记录2.12S数据,从而不用频繁获取。(最终考虑设定1.6S间隔刷新数据。)
    3. 定期清零重新记录,避免如何分清哪些数据是上次的。命令: dumpsys SurfaceFlinger --latency-clear
    4. 有刷新则计算帧率,无刷新则不输出数据,有时候取到的fps为1,就是这个原因
    5. 每次采样数据大于等于1帧则计算FPS,丢帧率,最大帧间隔
    6. 针对业务需求,增加了单帧平均渲染时间的统计
    内存测试:
    内存测试中的测试子项:
    1)空闲状态下的应用内存消耗情况
    2)中等规格状态下的应用内存消耗情况
    3)满规格状态下的应用内存消耗情况
    4)应用内存峰值情况
    5)应用内存泄露情况
    6)应用是否常驻内存
    7)压力测试后的内存使用情况
    内存问题现象:
    1)内存抖动
    2)大内存对象被分配
    3)内存不断增长
    4)频繁GC

    内存数据获取:
    1、各种linux命令(top、free、meminfo…)
    2、通过dumpsys
    adb shell dumpsys meminfo [pakagename | pid]
    3、通过/system/xbin/procrank工具
    adb shell procrank
    5. android检查内存泄露步骤:
    1、运行Monkey进行压力测试:
    adb shell monkey -p cn.microinvestment.weitou --pct-touch 100 --ingore-crashes --throttle 1000 -s 100 -v -v 50
    2、监控内存值,如果出现过大等递增异常则保存HPROF文件(hprof文件是Java 虚拟机的Heap快照)用于分析查看应用内存的命令:
    adb shell dumpsys meminfo cn.microinvestment.weitou(进程名)
    如果发现内存过大,则保存HPROF文件:adb shell am dumpheap <进程名> <保存路径>
    3、分析hprof文件
    用工具MAT来查看,首先还要这个HPROF文件转换成MAT可读的文件
    在Android SDK tool里面有个hprof-conv命令:
    hprof-conv <原HPROF文件路径> <转换后的HPROF路径>
    hprof-conv a.hprof b.hprof
    4、用MAT工具打开转换后的HPROF文件
    一般选择Leak Suspects Report(通过SQL语句来查询对象有没有被释放掉,如果有多个相同的对象,则会存在内存泄露的问题)

  • 相关阅读:
    服务器出现大量的127.0.0.1:3306 TIME_WAIT连接 解决方法 [转载]
    phpize安装php扩展CURL
    linux位数查看
    Linux下Sublime Text 3的安装
    ECstore后台报表显示空白问题解决办法
    centos 上安装phpstorm
    Nginx禁止目录执行php文件权限
    vue 动画
    vue的路由
    组件的传值 组件之间的通讯
  • 原文地址:https://www.cnblogs.com/LinxiHuang/p/9246748.html
Copyright © 2011-2022 走看看