测试工作中常使用的adb+monkey命令以及logcat日志分析

adb 获取 Activity的信息,类名
adb shell dumpsys activity activities 
查看版本:adb version
显示帮助:adb help
查看设备:adb devices
以 root 权限运行 adbd:adb root
查看系统app包名:adb shell pm list packages -s
查看系统第三方包名:adb shell pm list packages -3
屏幕截图:adb shell screencap -p /sdcard/sc.png
====================================================
CPU占有率
adb shell dumpsys cpuinfo :获取本机CPU占有率
adb shell dumpsys  cpuinfo | findstr +包名  :获取应用的CPU占有率  
内存使用情况
adb shell getprop | findstr dalvik :本机内存的使用情况
adb shell dumpsys meminfo +包名:应用的内存使用情况
fps 查看
adb shell dumpsys gfxinfo +包名
特别注意在windows电脑上,用findstr ;在苹果本上用grep  
===========================================================
安装APP:adb install C:\Users\kevin\Desktop\移动测试\software\PsAirlineBookSystem.apk
覆盖安装:adb install -r C:\Users\kevin\Desktop\移动测试\software\PsAirlineBookSystem.apk
卸载APP:adb uninstall  com.example.psairlinebooksystem
从模拟器/设备中上传和下载文件
adb push <本地路径> <远程路径>
将PC端文件或目录复制到模拟器或者设备,如下:
adb push D:\mysolution\test.apk /sdcard/qianli
从模拟器或者设备中复制文件或目录到PC端,如下:
adb pull /sdcard/qianli/test.apk D:\
===========================================
adb logcat >> D:\app\log01.txt
1.抓取设备所有日志:
adb logcat >> D:\mysolution\log.txt
2.抓取设备所有报警日志:
adb logcat *:W >> D:\mysolution\wlog.txt
3.抓取设备中所有错误日志:
adb logcat *:E >> D:\mysolution\elog.txt
4.清空设备所有日志:
adb logcat -c
APP日志文件分析
输出通信系统的log-----重定向到D:\lemon59\logcat_radio.txt
拒绝访问是重定向文件要传到一个文件里,而不是一个目录里
知道设备的名字,
可通过操作连接:adb connect 127.0.0.1:62001
Adb logcat -v time > E:\lomon59\logcat_time.txt
输出日志时间
Ctrl+f 
快速当前文档查找
程序发生崩溃问题,一个要从新抓取日志
崩溃(crash):adb logcat -v time > D:\lemon59\logcat_crash_2019-6-1.txt
Ctrl+f   
搜索 fatal 查看在那一行------找到哪行开始和结束,复制这些日志信息给开发。
应用程序无响应(ANR),从新抓取日志
adb logcat -v time > D:\lemon59\logcat_anr_2019-6-1.txt
搜索 anr in
手机Linux操作系统是删减版。
所以一些操作命令没有办法使用vi命令就不可以
方法调用栈 adb shell ----LS---cd data----ls---cd anr----
traces.txt---ll----cat traces.txt查看麻烦
adb pull /data/anr/traces.txt D:\lemon59
总结:
当测试App有出现问题的话,我们需要怎么做??
1、描述请求复现的路径/步骤
2、描述测试环境:手机系统版本、手机型号、App版本
3、日志信息
崩溃(crash):adb logcat -v time > D:\lemon59\logcat_crash_2019-6-1.txt
应用程序无响应(ANR):adb logcat -v time > D:\lemon59\logcat_anr_2019-6-1.txt
adb pull /data/anr/traces.txt 
D:\lemon59
================
Monkey 进行压力测试
adb shell monkey -p com.ss.android.ugc.aweme -v 800 

========================================================
显示帮助: adb shell monkey 或者 adb shell monkey -help
向计算器发送500个随机事件:adb shell monkey -p com.android.calculator2 500

向模拟器发送10个随机事件:adb shell monkey  10

指定log等级:adb shell monkey -v 500

指定随机数种子:adb shell monkey -s 8888 -v -v -v 500

在事件之间插入特定的延时时间(单位毫秒) :adb shell monkey --throttle 300 -v 500

指定touch(触摸)事件的百分比:adb shell monkey --pct-touch 50 -v -v 500

指定motion(手势)事件百分比:adb shell monkey --pct-motion 100 -v -v 500

--pct-nav <percent>
指定基本的导航事件百分比: 指定基本的导航事件百分比。导航事件由方向输入设备的上下左右按键所触发的事件组成,即四个

方向键
--pct-majornav <percent>
指定主导航事件百分比。这些导航事件通常会导致UI界面发生变化,如5-way键盘的中间键,返回按键、菜单按键
--pct-syskeys <percent>
指定系统事件百分比。这些按键通常由系统保留使用,如Home、Back、Start Call、End Call、音量调节
--pct-appswitch <percent>
指定Activity启动的百分比。在随机的时间间隔中,monkey执行startActivity()方法,最大程度地覆盖应用中全部的Activity
--pct-anyevent <percent>
指定其他事件的百分比。包含所有其他事件,如按键、其他在设备上不常用的按钮等

=======================================================
忽略应用程序崩溃crashes: adb shell monkey --ignore-crashes -v -v 500

忽略超时:adb shell monkey --ignore-timeouts -v -v 500
================================================================
adb shell monkey -v -v -v -s 8888 --throttle 300 --pct-touch 30 --pct-motion 25 --pct-appswitch 25 --pct-

majornav 5 --pct-nav 0 --pct-trackball 0 -p com.wwdy.app 10 >D:\app\monkey.txt

adb shell monkey -p com.android.calculator2 -v -v -v -s 8888 --throttle 300 --pct-touch 30 --pct-motion 25 

--pct-appswitch 25 --pct-majornav 5 --pct-nav 0 --pct-trackball 0 -p com.wwdy.app 100 >D:\app\monkey2.txt

adb shell monkey -p com.example.psairlinebooksystem -v -v -v -s 8888 --throttle 300 --pct-touch 30 --pct-

motion 25 --pct-appswitch 25 --pct-majornav 5 --pct-nav 0 --pct-trackball 0 -p com.wwdy.app 100 >D:\app

\monkey2.txt

adb shell monkey -p com.tencent.edu -v -v -v -s 8888 --throttle 300 --pct-touch 30 --pct-motion 25 --pct-

appswitch 25 --pct-majornav 5 --pct-nav 0 --pct-trackball 0 -p com.wwdy.app 100 >D:\app\monkey2.txt

adb shell monkey -p com.ss.android.ugc.aweme -v 500


=============================================================

结合上面的介绍下面写一个比较全面的monkey测试命令
adb shell monkey -v -v -v -s 8888 --throttle 300 --pct-touch 30 --pct-motion 25 --pct-appswitch 25 --pct-

majornav 5 --pct-nav 0 --pct-trackball 0 -p com.wwdy.app 10000 >D:\monkey.txt
这是一个比较完整的monkey测试命令,3个-v显示最详细的测试信息,指定种子值为8888,指定触摸事件占30%、手势事件占25%

、Activity跳转占25%、主导航占5%、方向导航0%、轨迹球0%,剩下的15%随机分配给其它未指定的事件,约束只测试包名为

com.wwdy.app的应用,指定事件数为10000次,输出的测试信息保存到D盘的monkey.txt文件中。
由于10000次耗时太长,这里改成10次执行该命令向大家解释一下测试结果信息。(正式测试可改成10000甚至更多次)

日志级别 Level 0
*示例 adb shell monkey -p com.htc.Weather –v 100
说明缺省值,仅提供启动提示、测试完成和最终结果等少量信息

日志级别 Level 1
*示例 adb shell monkey -p com.htc.Weather –v -v 100
说明 提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别 Level 2
*示例 adbshell monkey -p com.htc.Weather –v -v –v 100
说明 最详细的日志,包括了测试中选中/未选中的Activity信息
上一篇:Android“关闭VM”没有堆栈跟踪


下一篇:android – 如何在logcat上启用表面flinger事件