This repository was archived by the owner on Feb 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 21
Home
JunchengChen edited this page Feb 24, 2016
·
2 revisions
可以从官方网站下载并安装最新版本,推荐版本2.7.10。3.0以上版本还未经过测试(windows安装python时默认没有勾选pip工具,请勾选一下)
下载地址:http://www.python.org/download/
$ pip install alitvb$ pip uninstall alitvb- 通过-d或者--device指定连接设备的ip地址或usb连接名,使用的默认监控项为cpuinfo, meminfo, top, anr, logcat
$ tvb -d 192.168.2.100 #ip
$ tvb -d 61ced2 #usb
$ tvb --device 192.168.2.100 #ip- 通过-c指定监控项,多个用空格隔开,若不指定则使用默认的监控项,若监控项有memdetail,需要通过-p指定进程名
$ tvb -d 192.168.2.100 -c cpuinfo meminfo top memdetail anr logcat event| 监控项 | 对应命令 | 说明 |
|---|---|---|
| cpuinfo | dumpsys cpuinfo | cpuinfo.load, cpuinfo.total, cpuinfo.usage.package |
| meminfo | dumpsys meminfo | meminfo.uptime, meminfo.total, meminfo.pss.package |
| temp0 | cat /sys/class/thermal/thermal_zone0/temp | temperature0 |
| temp1 | cat /sys/class/thermal/thermal_zone1/temp | temperature1 |
| top | top -n 1 | top.cpu, top.cpu.package, top.pid.package, top.thr.package |
| memdetail | dumpsys meminfo -a package | |
| showmap | showmap pid | |
| dumpheap | am dumpheap package | 约1个小时收集一次 |
| activity | dumpsys acitivity | |
| oom | dumpsys activity oom | |
| processes | dumpsys activity processes | |
| procstats | dumpsys activity procstats | |
| anr | cat /data/anr/trace.txt | |
| logcat | logcat -v time | |
| event | logcat -v time -b events | |
| bugreport | bugreport | 结束时收集 |
| usagestats | dumpsys usagestats | 结束时收集 |
- 通过-l或--log指定信息收集目录,若不指定则默认为当前目录
$ tvb -d 192.168.2.100 -l /other/path/
$ tvb -d 192.168.2.100 --log d:/log/- 通过-t或--time指定监控时间,单位分钟,若不指定则不会自动停止。指定时间或不指定时间都可以通过Ctrl+c手动停止。
$ tvb -d 192.168.2.100 -t 5 #5分钟后自动停止监控并生成报告
$ tvb -d 192.168.2.100 --time 5- 通过-i或--interval指定监控数据采样间隔,单位秒,默认为10秒。
$ tvb -d 192.168.2.100 -i 30
$ tvb -d 192.168.2.100 --interval 30- 通过-p或--process指定监控进程名用于生成excel图表,多个用空格隔开。
$ tvb -d 192.168.2.100 -p com.abc.xxx1
$ tvb -d 192.168.2.100 --process com.abc.xxx1 com.qwe.xxx2- 通过-m或--monkey限定应用执行monkey测试
$ tvb -d 192.168.2.100 -m com.abc.xxx1
$ tvb -d 192.168.2.100 --monkey com.abc.xxx1 com.qwe.xxx2- 通过-b或--blacklist指定应用黑名单执行monkey测试
$ tvb -d 192.168.2.100 -b com.abc.xxx1
$ tvb -d 192.168.2.100 --blacklist com.abc.xxx1 com.qwe.xxx2- 通过-s或--script指定脚本执行monkey测试
$ tvb -d 192.168.2.100 -s /somewhere/script.txt
$ tvb -d 192.168.2.100 --script /somewhere/script.txt- 通过-o或--throttle指定monkey事件间隔时间,单位毫秒,默认500
$ tvb -d 192.168.2.100 -m com.abc.xxx1 -o 1000
$ tvb -d 192.168.2.100 -b com.abc.xxx1 --throttle 1000
$ tvb -d 192.168.2.100 -s /somewhere/script.txt --throttle 1000- 通过以下参数指定monkey各类事件所占百分比,通过-s脚本方式运行monkey以下配置无效。若指定的事件类型不到100,剩余其他类型的事件均分剩余百分比。
- 通过-pct-touch指定monkey touch事件百分比,默认0
- 通过-pct-motion指定monkey motion事件百分比,默认0
- 通过-pct-trackball指定monkey trackball事件百分比,默认0
- 通过-pct-nav指定monkey "basic" navigation事件百分比,默认55
- 通过-pct-majornav指定monkey "major" navigation事件百分比,默认15
- 通过-pct-syskeys指定monkey "system" key事件百分比,默认15
- 通过-pct-appswitch指定monkey activity launches事件百分比,默认9
- 通过-pct-anyevent指定monkey other types事件百分比,默认1
$ tvb -d 192.168.2.100 -m com.abc.xxx1 --pct-nav 100
$ tvb -d 192.168.2.100 -m com.abc.xxx1 --pct-touch 0
$ tvb -d 192.168.2.100 -m com.abc.xxx1 --pct-nav 80 -pct-majornav 19 -pct-appswitch 1例子:通过脚本测试某应用,循环启动该应用后右移两下再左移两下退出,脚本如下:
LaunchActivity(com.abc.xxx1, com.abc.xxx1.HomeActivity)
UserWait(500)
DispatchPress(KEYCODE_DPAD_RIGHT)
DispatchPress(KEYCODE_DPAD_RIGHT)
DispatchPress(KEYCODE_DPAD_LEFT)
DispatchPress(KEYCODE_DPAD_LEFT)
DispatchPress(KEYCODE_BACK)
脚本常用指令说明
LaunchActivity(String pkg_name, String cl_name) #启动应用,指定应用包名和入口activity
UserWait(long sleeptime) #指定额外延时,单位毫秒
DispatchPress(int keyCode) #短按键操作,keycode见下表
LongPress(int keyCode) #长按操作,keycode见下表常用按键KEYCODE列表: http://developer.android.com/reference/android/view/KeyEvent.html
#Key events that move around the UI.
NAV_KEYS = ['KEYCODE_DPAD_UP',
'KEYCODE_DPAD_DOWN',
'KEYCODE_DPAD_LEFT',
'KEYCODE_DPAD_RIGHT',
]
#Key events that perform major navigation options (so shouldn't be sent as much).
MAJOR_NAV_KEYS = ['KEYCODE_MENU',
'KEYCODE_DPAD_CENTER',
]
#Key events that perform system operations.
SYS_KEYS = ['KEYCODE_HOME',
'KEYCODE_BACK',
'KEYCODE_VOLUME_UP',
'KEYCODE_VOLUME_DOWN',
'KEYCODE_MUTE',
]- 性能数据监控停止以后会自动生成报表,通过-p指定的进程名可额外生成有关该进程相关的图表
- 若出现异常中断,可通过-r或--report指定收集日志的目录重新生成报表
$ tvb -r /log/dir/datesubdir/
$ tvb -r D:/log/2015.09.18-15.39.22 -p com.abc.xxx1
$ tvb -r D:/log/2015.09.18-15.39.22 -p com.abc.xxx1 com.qwe.xxx2- 报表分析
- meminfo.uptime分析系统是否发生过重启【线条是否连续递增,若从0重新开始说明重启,该点即为重启时间】
- top.pid.package分析应用是否有crash【线条是否连续水平,出现多条线说明crash,不连续点为crash时间】
- top.thr.package分析应用是否存在线程泄露【看趋势是否持续递增】
- meminfo.pss.package分析内存使用情况【1.看趋势是否持续递增;2.看看内存使用大小是否合适,单位MB】
- cpu.load分析cpu负载【曲线值应该小于CPU核数,若不知CPU核数可查看@cpuinfo.core】
- cpu.usage.package分析cpu占用【普通应用CPU使用率不应该过高】
- 日志分析
- anr trace日志【分析应用无响应问题】
- logcat error日志【1.根据出问题时间点分析;2.根据关键字搜索,如exception、fatal、应用名、error、fail】
- memdetail日志【根据问题时间和native/dalvik内存使用详情分析内存问题】
- mali日志【根据问题时间和GPU内存使用详情分析内存问题】
- activity日志【根据问题时间和activity任务栈分析问题】
- logcatevent日志【根据问题时间和events信息分析问题】
- monkey日志
- dropbox、admin日志