Android性能测试摘入(TestHome)
2024-08-24 09:13:24
Android性能测试:
客户端性能测试
服务端性能测试
客户端性能测试:
1.ROM版本的性能测试(即手机的不同操作系统):关注功耗测试
2.应用的性能测试
a.启动时间
b.内存
c.CPU
d.GPU
e.功耗
f.流量
......
一、启动时间的测试:暂分三类
1、首次启动:应用首次启动所用的时间
2、非首次启动
3、应用界面切换:应用界面内切换所花费的时间
抓取日志计算的方法:
adb logcat > 文件夹路径/文件名(./logcat/logcat.txt)
find "Displayed" ./logcat/logcat.txt > ./logcat/displayed.txt
find "activityName" ./logcat/displayed.txt > ./locat/last.txt
再根据last.txt文件中的时间计算启动时间
二、内存测试:关注内存消耗
目标: 为了让应用不占用过多的系统资源,且及时释放内存,保障整个系统的稳定性
分类:
1、空闲状态: 打开应用后,点击home键让应用在后台运行
2、中等规格操作: 对应用的操作时间的间隔较长
3、满规格操作: 对应用的操作时间的间隔较短
测试子项:
1.空闲状态下的应用内存消耗情况
2.中等规格状态下的应用内存消耗情况
3.满规格状态下的应用内存消耗情况
4.应用内存峰值情况
5.应用内存泄露情况
6.应用是否常驻内存
7.压力测试后的内存使用情况
1)第三方工具: 网易的Emmagee、安测试、腾讯的GT等
2)抓取日志方法:
adb shell dumpsys meminfo > ./logcat/meminfo.txt
find "应用名称" ./logcat/meminfo.txt > ./logcat/mem.txt
3) 使用 android 提供的 procrank
procrank
方法(批处理)首先去google获取procrank、procmem、libpagemap.so 三个文件 .
然后push文件,执行 adb push procrank /system/xbin
adb push procmem /system/xbin
adb push libpagemap.so /system/lib
赋权 adb shell chmod 6755 /system/xbin/procrank
adb shell chmod 6755 /system/xbin/procmem
adb shell chmod 6755 /system/lib/libpagemap.so
,
在开启工具记录
adb shell procrank |grep packagename >/address/procrank.txt
内存泄露方面的测试,可以通过几个方面来测试:
1.通过monkey压力测试记录内存使用情况,分析数据曲线图及日志情况
2.通过eclipse上的mat+heap来分析存在内存泄露方面的节点
三、CPU的测试
测试子项:
1.空闲状态下的应用CPU消耗情况
2.中等规格状态下的应用CPU消耗情况
3.满规格状态下的应用CPU消耗情况
4.应用CPU峰值情况
CPU的测试方法分为几类:
1.使用android提供的adb shell dumpsys cpuinfo |grep packagename >/address/cpu.txt来获取
1.使用android提供的adb shell dumpsys cpuinfo |grep packagename >/address/cpu.txt来获取
2.使用top命令 adb shell top |grep packagename>/address/cpu.txt 来获取
四、GPU的测试
测试子项:
- 界面过度绘制
- 屏幕滑动帧速率
- 屏幕滑动平滑度
对于过度绘制的测试主要通过人工进行测试,通过打开开发者选项中的 显示GPU过度绘制 来进行测试(PS:只有android4.2及以上的版本才具备此功能),验收的标准为:
- 不允许出现黑色像素
- 不允许存在4x过度绘制
- 不允许存在面积超过屏幕1/4区域的3x过度绘制(淡红色区域)
五、功耗测试
测试子项:
1、测试手机安装目标APK前后待机功耗无明显差异
2、常见使用场景中能够正常进入待机,待机电流在正常范围内
3、长时间连续使用应用无异常耗电现象
命令获取:
adb shell dumpsys battery
......
六、流量测试
测试子项:
1、应用首次启动流量提示
2、应用后天连续运行2小时的流量值
3、应用高负荷运行的流量峰值
4、应用中等负荷运行时的流量均值
测试方法:
1、tcpdump抓包,wireshake获取报信息计算
2、获取uid:
adb shell dumpsys package
//adb shell cat /proc/uid_stat/uid/tcp_rcv
// adb shell cat /proc/uid_stat/uid/tcp_snd
adb shell cat /proc/net/xt_qtaguid/stats
最新文章
- 深入理解Angular中的$Apply()以及$Digest()
- 02-Vue入门之数据绑定
- qlserver、Mysql、Oracle三种数据库的优缺点总结
- 【转】PackageInfo、ResolveInfo 笔记
- SQL Server 索引介绍
- HeadFirst设计模式之单例模式
- 标准程序员系列-Github篇-初始化一个代码仓库
- 一个简单的string类,读书看报系列(一)
- UVALive 7070 The E-pang Palace(暴力)
- Java-transient总结
- P1991 无线通讯网 最小生成树
- ES6---扩展运算符和rest‘...’(三点运算符),在数组、函数、set/map等中的应用
- pythonの信号量
- Android应用启动、退出分析
- 【BZOJ1492】【NOI2007】货币兑换
- Java JDBC基本用法
- eclipse中的项目鼠标右键卡死
- easyUI datagrid 排序
- 华为P10闪存门
- SQL数据类型(SQL Server六个类型使用)
热门文章
- SQL Server Profiler	跟踪sql小技巧
- 【Java集合源代码剖析】TreeMap源代码剖析
- Atitit .h5文件上传 v3
- [docker]bind9.11-with-mysql5.6 docker容器化实战
- tensolrflow之基础变量
- java中的锁池和等待池
- 【问题记录】shiro logout UnknownSessionException
- Hadoop 安装指南
- powerDesigner建表时选择不同数据库类型
- STM32F10x_硬件I2C读写EEPROM(标准外设库版本)