APP专项测试: 系统:安卓、苹果(Android IOS)
1、应用性能测试(CPU 内存 电量 流量 温度) 1)CPU:空闲 中等消耗 高消耗,检测cpu的运行情况
adb shell dumpsys cpuinfo |grep packagename
-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量 top -m 5 -s cpu
2)内存 adb shell dumpsys meminfo packagename | pid
最大堆内存大小 getprop |grep dalvik.vm.heapgrowthlimit
AndroidManifest.xml android:largeHeap=“true” android:debuggable=“true”
procrank命令 adb shell procrank
3)电量 方式1:使用手机上自带电量监测工具 手机助手 gsam battery monitor gt工具 方式2:使用硬件,讲电量表串在电源和手机之间,需取出下手机电池 方式3:需要在安卓5.0以上系统 adb shell 初始化电量统计数据 dumpsys batterystats --reset
获取整个设备的电量数据 dumpsys batterystats >/storage/sdcard/Download/battery_001.txt
获取指定APP应用的电量数据 dumpsys batterystats com.android.browser >/storage/sdcard/Download/battery_browser_001.txt
使用python工具转换成html文档 python historian.py battery_browser_001.txt battery_browser_001.html
4)流量 静默:不操作APP时的流量 动态操作:操作APP时的流量 与竞品分析、版本对比 方式1: adb shell cat /proc/net/进程名/stats |grep uid
方式2: cat /proc/uid_stat/uid/tcp_snd cat /proc/uid_stat/uid/tcp_rcv
方式3: cat /proc/pid/net/dev
方式4: tcpdump+wireshark adb push tcpdump包 /data/local/tcpdump adb shell chmod 6755 /data/local/tcpdump cd /data/local tcpdump -s 0 -w /sdcard/Download/tcpdump.pcap -v adb pull /sdcard/Download/tcpdump.pcap d: 用wireshark工具打开pcap文件,并进行分析
方式5: TrafficStats类
减少流量的方式: 在不同网络状态下加载不同类型的图片 使用json格式传输数据 进行数据的压缩 使用懒加载 使用缓存
2、APP启动、加载时间(冷启动 热启动) 冷启动:首次安装应用启动后的测试 热启动:已经安装应用,并使用多次后,启用应用的测试
方式1: 高速相机 3秒表 云测平台
方式2: adb shell am start -W -n 包名/Activity名 关注ThisTime项,本次APP启用所花费的时间,单位毫秒 am start -W -n com.android.browser/.BrowserActivity
logcat >d:\time.txt findstr “Displayed” d:\time.txt >d:\time1.txt findstr “包名” d:\time1.txt >d:\result.txt
3、页面渲染(gpu fps) 屏幕上的像素在同一帧时间内被绘制了多次 蓝1X、淡绿2X、淡红3X、深红4X 开始GPU:开发者选项->显示/GPU过度绘制
4、手机卡顿(TraceView) 方法1:DDMS工具 采集程序的方法的执行耗时、调用关系、调用次数、资源占用情况 选择某个被测应用,点击Start Method Profiling,红点变成黑点,处于信息采集状态; 在TraceView界面中,分为时间线界面、分析界面; 消耗CPU的情况:关注Cpu Time/Call列中,消耗时间最大的函数 调用次数的情况:关注Call+Recur Calls/Total,调用次数最大、CPU耗时最大的函数
方法2:埋点 在代码中埋点,之后操作应用,生成trace文件,使用monitor工具进行分析 在AndroidManifest.xml文件配置sd卡读写权限 埋点开始: onCreate Debug.StartMethodTracing("/storage/sdcard/xxx.trace"); 埋点结束: onStop或onPause或onDestory Debug.StopMethodTracing();
5、内存泄漏 抖动(根据场景收集应用消耗手机内存、需收集3次的内存数据) 测试的情况:虚拟机、联机 虚拟机测试: android list avd emulator @avdname ddms
联机测试: 在手机中安装Android驱动 手机设置成USB调试模式 应用配置文件设置 AndroidManifest.xml android:debuggable=“true”
在ddms中,点击某个进程,点击show heap updates,再点击GC按钮,多次操作后观察 data object中的Total Size大小变化趋势,如果发现内存泄漏,则需dump文件 Dump HPROF file按钮进行dump操作; 利用hprof-conv 转换成hprof文件。再导入到mat工具中进行分析。
6、弱网测试 Network Emulator Toolkit工具 关注:卡死 崩溃 无响应 闪退 业务交互数据的正确性
7、代码静态扫描 使用lint工具(ADT工具自带,分析出代码结构上的问题,可自定义检查的规则) lint --list lint --show
findbugs 可发现java代码层面的问题
转载于:https://www.cnblogs.com/Andy520/p/6651134.html