安卓自动化工具Fastbot 问题总结经验

Fastbot:行进中的智能 Monkey

背景:

Fastbot是字节跳动基于Monkey进行二次开发的一款工具,相对与Monkey来说会更加智能。

原理和源文件参考:

传送:https://juejin.cn/post/6877360102123241480#heading-0

https://github.com/bytedance/Fastbot_Android

随机方法:

使用方法:

1.模拟器或者真机连接电脑,用adb devices检测是否连接成功;

下面是基于真机(小米)模拟

C:\Users\Administrator>adb devices
List of devices attached
0a1e0f3d5    device

注意:手机需要开启开发者模式和usb授权;手机连接为文件夹模式

2.把两个附件: framework.jar , monkeyq.jar push 到手机上某个目录中,建议/sdcard

adb push framework.jar /sdcard

adb push monkeyq.jar /sdcard

备注:真机可能会有权限问题,提示无权限;

解决:使用adb命令:adb shell ls  /sdcard 打印所有文件,发现这个文件夹就是与电脑传送默认文件夹;

可以通过手机连接电脑,设置为:文件模式,右键两个附件选择发送到手机,就默认到sdcard这目录

不知道adb 命令可以参考adb日常使用方法 :https://www.cnblogs.com/shoebill/p/14430554.html

C:\Users\Administrator>adb shell ls /sdcard

3. 运行随机脚本命令:

adb -s 设备号 shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p 包名 --agent robot --running-minutes 遍历时长 --throttle 事件频率 -v -v

实例

adb shell CLASSPATH=/data/monkeyq.jar:/data/framework.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p com.test.today --agent robot --running-minutes 10 --throttle 500 -v -v

包需要特别打才能运行执行正常;

建议:执行命令前,先进行登录,随机的场景遇到需要登录的功能,基本跳不过去,登录后可覆盖的功能点能加大,相对Monkey随机覆盖,此工具覆盖更大;

自定义脚本:

脚本的设计也是基于xpath,结合每个activity,定位到当前的xpath,最后结果发现并不能按照自定义的脚本执行,更加偏向于随机跑,

把自定义命名为:并放到sdcard 目录,执行命令:

adb shell CLASSPATH=/data/monkeyq.jar:/data/framework.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p com.test.today --agent robot -v 1#1代表执行次数

分析:

通过打印每个页面的activity和元素发现,发现有些页面的activity不一样的,还是id,name等元素的clickable = false,

怀疑以上两个原因导致自定义脚本不能如实跑,例如:activity跟脚本不一致,xpath的元素是不可点击导致,

反思:如果是元素不可点击,随机脚本应该也不能正常跑,这里有点矛盾,

有哪位大神有研究,并能正常执行,请指点一下迷津,跪谢!!!

教程的列子:

实际:

 遇到查找activity 与 定位元素问题,可以使用下面命令:

#找activity的方法:
#能找到包名和activities,但activities可能是广告的
aapt dump badging D:news.apk
 
#在启动app过程 执行下面命令能提过广告的activities
#例如有启动页的情况下,需要那打开a跳过该广告页,可以在跳过广告页,执行下面的命令即可
adb shell dumpsys window w | findstr \/ | findstr name=

#下载当前页面的定位和activity信息
adb shell uiautomator dump

总结:

通过fastbot 结合手机的性能监控工具,可以运用于稳健性测试与偶现的闪退问题(配合日志捕捉)的发现;

原文地址:https://www.cnblogs.com/shoebill/p/14481970.html