adb进行monkey测试

一、ADB安装.  网上教程很多,自行搜索

二、adb安装好后,启动失败问题排查
先检测5037端口被什么进程占用,利用命令:netstat -ano | findstr "5037" (一般情况下adb默认端口号为5037),记住pid进程号

如果被占用:使用 taskkill /F /pid {$pid} 强制杀掉进程

三、启动adb
启动成功后,adb -help 查看具体使用使用

adb devices 列表没有连接手机
模拟设备:
方式一、使用wifi连接:同一网段
方式二、使用USB连接

四、Nox模拟器

使用Android Studio与夜神模拟器开发调试: (1)运行夜神模拟器, (2)打开命令行窗口, (3)打开到夜神安装目录(如cd D:\Program Files\NOX\Nox\bin), (4)执行命令:nox_adb.exe connect 127.0.0.1:62001,连接模拟器, 

https://blog.csdn.net/mazaiting/article/details/72673166

https://blog.csdn.net/m0_52571715/article/details/109713550

1.启动夜神模拟器,设置->关于平板电脑->点击5次版本号 进入开发者模式 
2. 运行cmd命令,cd到夜神安装目录,执行命令 
nox_adb.exe connect 127.0.0.1:62001

https://blog.csdn.net/mazaiting/article/details/72673166  夜神模拟器与Android studio连接

五、monkey测试
adb shell monkey -p {包名} -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:\monkey_log\java_monkey_log.txt

查看帮助:adb shell monkey –help

monkey实战--测试步骤、常用参数、常规monkey命令

https://www.cnblogs.com/lynn-li/p/5989034.html  monkey之monkey命令详解

如何找到安卓手机App对应的包名和路径

使用aapt    
aapt是sdk自带的一个工具,在sdk\builds-tools\目录下,

1. 在cmd中,切换至sdk\builds-tools\目录下,即aapt.exe目录下
2.以QQ音乐为例,命令行中切换到aapt.exe目录执行:aapt dump badging C:\Users\Administrator\Desktop\QQyinle_155.apk(apk所在目录位置)
3.运行后的结果中以下两行分别是应用包名package和入口activity名称
package: name='com.tencent.qqmusic'
launchable-activity: name='com.tencent.qqmusic.activity.AppStarterActivity'

以上方法本人亲自操作过,以下诸多方法借鉴其他人,mark一下:

 

方法一:

adb shell pm list package -f

将获取手机内所有apk对应的包名和路径

 

方法二:

adb shell dumpsys window w | findstr \/ | findstr name=

先打开需要查找的apk后,再敲入以上命令

 

方法三:

C:\Users\Administrator>adb shell
root@msm8916_32_512:/ # logcat | grep Android.intent.category.LAUNCHER

 

方法四:

adb shell dumpsys activity > d:\log.txt

先启动需要的查找的apk,再敲入以上命令,在stack #1下查找cmp=

 

方法五:

C:\Users\Administrator>adb shell
root@msm8916_32_512:/ # logcat | grep START

先启动需要查找的apk,再敲入以上命令,找到最后一个ActivityManager
 

 

方法六:
查看AndroidManifest.xml
1.使用apktool反编译app:apktool d QQyinle_155.apk E:\apk\QQYinyue
2.打开AndroidManifest.xml
manifest节点的package属性值是应用的包名:<manifest package=”com.estrongs.android.pop”>
查找android.intent.action.MAIN和android.intent.category.LAUNCHER对应的activity,该activity对应的android:name属性既是入口activity名称,
android.intent.action.MAIN决定应用程序最先启动的Activity
android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里

 

 

一、logcat命令介绍

1.android log系统

image

 

2.logcat介绍

logcat是android中的一个命令行工具,可以用于得到程序的log信息

log类是一个日志类,可以在代码中使用logcat打印出消息

  • 常见的日志纪录方法包括:

方法

描述

v(String,String) (vervbose)显示全部信息
d(String,String)(debug)显示调试信息
i(String,String)(information)显示一般信息
w(String,String)(waning)显示警告信息
e(String,String)(error)显示错误信息

例如:

//开发过程中获取log
Log.i("MyActivity","MyClass.getView() - get item number"+position);
//adb获取log
adb logcat

adb logcat输出的日志格式如下:

I/ActivityManager( 1754): Waited long enough for: ServiceRecord{2b24178c u0 com.google.android.gms/.checkin.CheckinService}

3.logcat命令格式

语法格式:

[adb] logcat [<option>] … [<filter – spec>] …

PC端使用:

adb logcat

shell模式下使用:

logcat

二、logcat缓冲区

1.缓冲区介绍

android log输出量巨大,特别是通信系统的log,因此,android把log输出到不同的缓冲区中,目前定义了四个log缓冲区:

1)Radio:输出通信系统的log

2)System:输出系统组件的log

3)Event:输出event模块的log

4)Main:所有java层的log,遗迹不属于上面3层的log

缓冲区主要给系统组件使用,一般的应用不需要关心,应用的log都输出到main缓冲区中

默认log输出(不指定缓冲区的情况下)是输出System和Main缓冲区的log

 

2.缓冲区模型

image

3.获取缓冲区命令

参数

描述

-b<buffer>加载一个可使用的日志缓冲区提供查看,默认值是main

4.实例

复制代码

adb logcat –b radio

adb logcat –b system

adb logcat –b events

adb logcat –b main

复制代码

三、logcat命令参数

1.参数说明

参数

描述

-b <buffer>加载一个可使用的日志缓冲区供查看,比如event和radio。默认值是main
-c清除缓冲区中的全部日志并退出(清除完后可以使用-g查看缓冲区)
-d将缓冲区的log转存到屏幕中然后退出
-f <filename>将log输出到指定的文件中<文件名>.默认为标准输出(stdout)
-g打印日志缓冲区的大小并退出
-n <count>设置日志的最大数目<count>,默认值是4,需要和-r选项一起使用
-r <kbytes>没<kbytes>时输出日志,默认值是16,需要和-f选项一起使用
-s设置过滤器
-v <format>设置输出格式的日志消息。默认是短暂的格式。支持的格式列表

一般长时间输出log的话建议-f,-n,-r三个参数连用,这样当一个文件日志输出满了之后可以马上在另一个中进行输出

2.实例

复制代码

//将缓冲区的log打印到屏幕并退出
adb logcat -d 
//清除缓冲区log(testCase运行前可以先清除一下)
adb logcat -c
//打印缓冲区大小并退出
adb logcat -g
//输出log
adb logcat -f /data/local/tmp/log.txt -n 10 -r 1

复制代码

四、logcat格式化输出

1.参数说明

日志消息包含一个元数据字段,除了标签和优先级,您可以修改输出显示一个特定的元数据字段格式的消息。为此,您使用-v选项来指定一个支持的输出格式。一下为支持的格式:

格式

说明

brief显示优先级/标记和过程的PID发出的消息(默认格式)
process只显示PID
tag只显示优先级/标记
raw显示原始的日志消息,没有其他元数据字段
time调用显示日期、时间、优先级/标签和过程的PID发出消息
threadtime调用显示日期、时间、优先级、标签遗迹PID TID线程发出的消息
long显示所有元数据字段与空白行和单独的消息

当logcat开始,指定想要输出格式-v选项:

[adb] logcat [-v <format>]

adb logcat –v thread

只能指定一个输出格式-v

2.例子

image

五、logcat优先级

1.优先级语法

优先级使用字符标识,一下优先级从低到高

V –Verbose(最低优先级)

D – Debug

I – Info

W – Warning

E – Error

F – Fatal

S – Silent

为了减少不想要日志的输出,可以建立一个过滤器

过滤语法:tag:priority

//过滤TAG为ActivityManager输出级别大于I的日志与TAG为MyApp输出级别大于D的日志

adb logcat ActivityManager:I  My App:D *:S

adb logcat *:W

设置过滤级别为W以上

如果用的比较多可以设置环境变量:

export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D*:S"

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值