Android性能测试

1 概要

本测试主要用于测试Android硬件机器人的Android系统性能,主要关注于系统稳定性,测试内容包括硬件驱动(功放、MIC、LED、按键、WIFI)稳定性、应用稳定性(云知声和平安APK系统的CPU和内存使用率)。

2辅助工具

2.1工具简介

科大讯飞 ITEST是一款Android应用与底层Linux进程性能监控的神器。目前已经在各类APP产品测试中广泛使用,相比其它的监控软件,iTest功能强大,运行稳定,消耗资源少。可以长时间同时监控单个或者多个应用及Linux进程的CPU、内存、电量、流量、FPS与CPU温度等性能指标,自身占用系统性能峰值不超过5%。同时iTest具有独特的命令行模式,便于用户在车机、机顶盒、机器人等有界面或无界面智能设备上进行应用以及服务进程的性能评测。

2.2 工具使用方法

1.Monkey插件

根据config\task.xml配置项中的指令自动运行monkey,拉起被测试的app,支持中断恢复和定时停止。具体配置如图所示:
Android性能测试用例_第1张图片

2.iTestMini插件

自动安装运行iTestMini,配置(包括上传ThreadFilter.txt文件),通过iTestMini自动收集数据上传至PC端下固定的目录; 并且上传至iTest Server端。具体配置如图所示:
Android性能测试用例_第2张图片
Monkey插件配置:
Time_Minute :monkey运行时间,单位为分钟。设置为0时,直接收集数据,然后停止。
NoMonkey: monkey是否需要关闭monkey功能,设置为true, 表示不运行monkey,false则运行。
MonkeyCommand:monkey命令,请确认该命令在adb shell中能正常运行。
iTestMini插件配置
interval:iTestMini的监控间隔,单位为秒,默认为1秒。如果设备性能较差, 建议设置为3秒。
Pkg:TestMini监控的apk的包名,如果要监控多个apk,用英文逗号隔开。

3测试内容

3.1开机时间:

测试目的
Android硬件系统启动时间过长严重影响着产品使用体验。因此开机时间必须限定一定范内。
测试方法:
测试从上电到Android硬件播报系统启动已完成所需要的时间,因为我们平安好医生不存在显示屏。所以无法直观通过屏幕查看好医生开机时间。我们可以使用adb 命令获取系统日志,间接的获取系统启动时间
LOG获取方式:
logcat -d -b events | grep “boot_progress_enable_screen” > start_time.log
获取系统开机时间

3.2 Wifi

测试目的:
WIFI是Android硬件和后台进行数据交互的唯一通道。将识别语音发送给后台解析,接收后台解析后的文字 然后好医生播放。所以Android系统启动后要尽快连接上WIFI网络
测试方法:
找多个不同品牌的路由器、手机热点、企业级路由器等。测试Android硬件连接速度。
编写一个service监控Android硬件系统完成后的网络连接并记录连接需要时间。通过
Adb 命令:adb reboot 多次重启计算连接的平均时间
日志获取:
若连接失败,则通过adb logcat > wifi.log获取相关信息

3.3 LED灯光

测试目的:
LED灯光控制驱动是由泰宝丰自己完成的。不是Android标准系统框架。使用过程中有可能出现系统崩溃问题。测试灯光频繁或者长时间使用LED驱动稳定性
测试方法:
通过 echo 0xAABB /sys/class/tybofone/tbf_api/val 状态灯红绿蓝三色颜色变化
0XAABB解释:前两位AA代表颜色 后两位BB代表亮度
AA 颜色
a2 红色
a3 绿色
a2 蓝色
亮度值位 00 ~ff 值越大亮度越大
通过编写脚本循环控制LED状态灯三者颜色转换、亮度不断变化。测试当前驱动的稳定性。同时通过ITEST监控LED驱动日志。一旦崩溃可以通过ITEST获取
LOG获取方式:
LED驱动崩溃后相关日志保存在ITEST的PC端目录DATA/Moonlight /tombstone

3.4 按键稳定性

测试目的:
按键控制驱动是由泰宝峰自己完成的。不是Android标准系统框架。使用过程中有可能出现系统崩溃问题。测试按键频繁或者长时间使用按键驱动稳定性。
测试方法:
通过 adb shell getevent获取当前系统的按键触发事件。实时获取触摸的按键与系统获取按键值对比。同时通过ITEST监控按键驱动日志。一旦崩溃可以通过ITEST获取。
LOG日志获取:
按键驱动崩溃后相关日志保存在ITEST的PC端目录DATA/Moonlight /tombstone

3.5 SPEAKER

测试目的:
测试长时间播放,Android硬件的功放的系统稳定性
测试方法:
使用tinyplay /sdcard/xx.wav -D 1 播放sdcard中存在的音乐列表。
同时通过ITEST监控SPEAKER驱动日志。一旦崩溃可以通过ITEST获取。
LOG日志获取:
按键驱动崩溃后相关日志保存在ITEST的PC端目录DATA/Moonlight /tombstone

3.6 MIC

测试目的:
云知声为了改变MIC识别精确。修改了Android标准的MIC录音框架。添加了自己优化的4MIC算法。为了保证Android硬件长时间工作MIC的稳定性。必须进行MIC录音功能的压力测试。
测试方法:
使用云知声提供的uni_4mic_test -cap /data/file.pcm -t 15 长时间录音。
同时通过ITEST监控MIC驱动日志。一旦崩溃可以通过ITEST获取。
LOG日志获取:
按键驱动崩溃后相关日志保存在ITEST的PC端目录DATA/Moonlight /tombstone

3.7 OTA

测试目的:
测试当前系统升级的稳定性,在Android系统OTA升级过程中经常会出现升级失败,导致系统变砖。所以量产前必须严格测试系统OTA升级功能,提前发现OTA升级出现bug。
通过编写系统service或者脚本对系统OTA进行测试。
测试方法:
1、修改recovery模式默认升级包地址为/sdcard/ota/rom/zip,
2、同时PC端 adb push rom.zip /sdcard/ota/rom/zip
3、adb reboot recovery
LOG日志获取:
Android硬件自动进入升级模式。如果失败 会有相关log保存到 cache/recovery.log

3.8 CPU使用率

测试目的:
监控Android硬件正常问诊工作中 当前CPU总使用率和云知声SDK和平安APK的CPU使用率,CPU使用过高会导致Android系统很卡顿,机器发热严重。严重影响用户体验。
测试方法:
通过配置ITEST的PC端的config/task.xml 文件可以监控Android硬件系统中的云知声SDK和平安APK的应用CPU使用率 系统总CPU使用率,同时可以设置系统CPU报警阈值和应用报警阈值。
相关配置如下所示:
Android性能测试用例_第3张图片
LOG日志保存:
平安系统正常运行时相关CPU使用率保存在DATA/Moonlight/iTestMini中。
CPU使用率过高报警信息保存在DATA/Moonlight/alarm中

3.9 MEM使用率

测试目的:
检测当前系统长时间或者频繁使用系统剩余内存和应用APP使用内存大小。若系统剩余内存不断减小说明系统或者应用存在内存泄露。
测试方法:
同理也是使用讯飞的ITEST测试工具测试Android硬件 云知声SDK和平安APK使用的内存大小,同时监测系统剩余内存大小。
alarmSystemMemLeft 设置系统剩余内存低于指定值时,将产生告警。100表示100M。
alarmAppMem 设置应用APP内存使用阈值 超过将报警
LOG日志保存:
平安系统正常运行时相关内存使用信息保存在DATA/Moonlight/iTestMini中。
内存剩余过少或者应用使用内存过大的报警信息保存在DATA/Moonlight/alarm中

3.10 网络性能

测试目的:
单位时间内对网络设备或端口成功传送数据的数量(在没有丢帧的情况下,设备能够接收并转发的最大数据速率)。是一个实际值,用于衡量Android硬件WIFI网络性能重要标志。
测试方法:
Android硬件安装iPerf 。Windows PC安装iperf客户端(jperf)。
测试上行速率(PC作Server,手机作Client)
PC 端配置好jperf,然后平安好医生输入命令iperf -c xx.xx.xx.xx -p 5001 -t 60 -P 1 启动测试
测试下行速率(手机作Server,PC作Client)
Android硬件端打开 输入命令iperf -s 启动服务端,PC端配置好连接当前好医生的IP。启动测试
配套文档

更多相关文章

  1. mac上AndroidStudio自带的SDK manager 系统菜单显示问题
  2. Android 自动化测试——Monkey测试
  3. Android输入系统
  4. 5个最佳Android测试框架
  5. Android系统的内存管理研究
  6. Android系统架构概述
  7. Android系统各个版本 最新市场份额变换
  8. 【自动化测试】Android Monkey实践
  9. Android系统架构5层

随机推荐

  1. Android手势识别简单封装类
  2. Android SQLite插入优化
  3. 2014.01.13 ——— android 控制ScrollVi
  4. android笔记---主界面(一)
  5. android 实现倒计时
  6. 给Android开发者的10个建议
  7. Andriod 的基本原理
  8. 【Android】如何判断一个fragment是否显
  9. android制作圆角图片和图片倒影
  10. 分享一个圆角自定义的漂亮AlertDialog