【小知识】Android APP 性能测试指标汇总(二)

「这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战

前言

在Android测试中,不仅要进行功能测试、边界值测试、兼容性测试外,性能测试也是不可或缺的,如下图Android APP测试类型。

image.png

在Android性能测试中主要有两种类型:

  • rom系统性能测试
  • APP应用性能测试

上一篇性能测试中我们对CPU、内存、FPS和GPU四个常关注的指标进行学习。

本期,我们将重点学习从响应时间、电量、流量等指标学习,Let's go~~

1. 响应时间

响应时间是衡量操作的APP达到期望效果的时间范围。如果一个软件,加载数据一直加载不出来,会对软件的日活、留存产生影响。

响应时间指标测试点关注有三类:

  • 冷启动:应用首次启动所花费的时间
  • 热启动:应用非首次启动所花费的时间
  • 跳转:应用界面切换所花费的时间

启动速度测试点有如下五点:

  • 冷启动速度
  • 热启动速度
  • 完全启动速度
  • 有网启动速度
  • 无网启动速度

启动时间验收标准为 冷启动不超过1.5S,热启动不超过1S

启动时间获取方法

  • 方法一:adb 方法
    1. 冷启动 需要提前确认程序是否在后台跑,如有则需要先kill应用程序
    2. 启动程序应用:adb shell am start -W -n package/activity
    3. 停止APP命令:adb shell am force-stop package
  • 方法二:使用charls 抓包,查看duration

响应时间测试解决方法

场景 方法
获取单机事件触发到容器启动Native APP消耗的时间 埋点
获取NativeAPP完全启动消耗时间 查看system.log
获取Native调用PRC请求方法的延时时间 埋点
获取RPC请求发出去过程中的具体数据 埋点
获取RPC请求返回具体数据 埋点
获取本地解析返回数据所消耗的时间 埋点或者Traceview工具
获取界面渲染的时间 慢速摄像机或埋点

2. 流量

如今,网络类型主要有2G、3G、4G、5G和WiFi,APP在使用不同网络时,我们要对其采取不同流量控制策略。如常用的视频APP,主要使用的网络类型为WiFi环境和蜂窝网络环境。

流量指标中涉及到的概念:

  • 中等负荷:应用正常操作
  • 高负荷:应用极限操作

获取流量数据步骤:

    1. 获取APP的pid:
    • 方法一:adb shell ps | grep com.google.android.youtube.XX
    • 方法二:dumpsys package com.google.android.youtube.XX
    1. 获取流量数据命令:
    • adb shell cat /proc/获取的进程号/net/dev

    注意:有些设备获取的流量数据有差异cat /proc/net/dev

    1. tcpdump 抓包分析
    • 下载tcpdump工具,push到设备/data/local/tmp目录下

    • 在命令行中,输入tcpdump -v -i any -s 0 -c 2000 -w /usb/pacakage.pcap

      image.png

    • tcpdump 工具命令参数说明:

      • -v/-vv/-vvv:,输出数据的详细程度,针对流量测试。
      • -i:指定网卡(interface): any代表不限网卡
      • -c: 指定接收包的数量,接收完成后自动停止抓包
      • -s: 指每个包中最多截取的字节数,设置为0 时,为默认值262144
    • 使用Wirshark打开统计流量值,筛选ip.host=

关于流量测试点有需要关注:

  1. 应用首次启动流量值
  2. 应用后台持续运行时长2H的流量值
  3. 应用高负荷运行的流量峰值
  4. 应用中等负荷运行中的流量均值

3. 电量

Android设备中,运行大量的程序,对电量的消耗对于手机设备来说也是需要关注的。

电量指标需要关注以下场景:

  1. 设备安装APK前后,待机功耗无明显差异
  2. 待机、操作页面、启动APK等常见操作,电量消耗均值正常
  3. 长时间使用APK,无异常耗电现象

电量数据获取方法

  • 方式一:adb 命令

    • adb shell dumpsys battery

    image.png

    status: 1 代表非充电状态、2 代表充电状态

    level: 电量信息

    • 获取整个设备的电量信息:adb shell dumpsys batterystats | more
    • 获取某个APK的电量信息:adb shell dumpsys batterystats APK包名
  • 方式二:使用第三方工具itest\GT

电量指标需要从软件和硬件两方面都要进行测试

  • 硬件端:需要硬件测试工程师使用万用表、功耗仪进行测试。满足市场行业标准

  • 软件端:

    • 方式一:可以使用第三方工具进行测评
    • 方式二:命令端获取电量数据

4. 温度

Android 设备运行过程中,设备温度异常不仅对用户体验带来不好影响,同时也存在安全方面隐患。

温度指标需要关注如下几个场景:

  1. 设备满负荷情况,设备温度峰值无异常
  2. 设备APK长时间播放,设备温度均值无异常
  3. 设备常规操作如点击、启动APK等温度正常

温度指标数据与电量指标获取方式都一样的

  • adb shell dumpsys battery

    image.png

  • temperature:温度(int类型),单位:0.1度

5. 性能测试常见问题

在性能测试过程中,经常会遇到如下问题及原因:

问题 原因
APP连接超时 网络中断;APP 请求接口异常
APP 闪退 Android缓存垃圾过多;运行程序多,导致内存不足等;版本兼容问题;
卡顿、黑白屏 系统CPU、GPU资源不够;过度绘制
崩溃 APP常常表现为Crash
交互性能差 其他APK、弹框干扰
内存泄漏 APK新建的对象没有释放,导致内存一直被占用
内存溢出 APK申请内存不够时

总结

本期,继续上一篇介绍性能测试响应时间、功耗、流量相关指标的测试点及获取数据的方法。

以上是本期内容,欢迎大佬们点赞评论,下期见~~~

猜你喜欢

转载自juejin.im/post/7068239461607276581