Fastbot_Android介绍
基于model-based testing 结合机器学习、强化学习的APP 稳定性测试工具。
详情请访问:Fastbot:行进中的智能 Monkey - 掘金
优势:
同时兼容Android5-12,兼容国内各厂商定制化的Android系统及原生Android系统
继承原生Monkey的优势,快速点击,每秒最高可发送12个事件
不同业务线支持不同的个性化需求,业务深度定制化
基于model-based 边遍历边建模,利用强化学习等算法做高收益决策
支持非标准化控件,YOLOv3、ocr、cv分割等UI图像识别能力
2021.09 更新
支持模型复用,模型文件会自动存储在 /sdcard/fastbot_[包名].fbm,启动 fastbot 时如果此文件存在则默认加载模型,运行过程中每隔十分钟会覆盖存储一次,用户可根据需求删除或拷贝此文件
2021.11 更新
本地接入
环境预备
libs/* 到/data/local/tmp/
adb push *.jar /sdcard adb push libs/* /data/local/tmp/
shell运行
aapt2 dump --values strings [install_package_path.apk] > max.valid.strings adb push max.valid.strings /sdcard
启动 Fastbot
adb -s 设备号 shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar:/sdcard/fastbot-thirdpart.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p 包名 --agent reuseq --running-minutes 遍历时长 --throttle 事件频率 -v -v
参数说明
多个设备需要指定设备号,单独设备无需此-s参数
遍历app的包名,-p+包名
遍历模式,无需更改
以ApiDemos应用(io.appium.android.apis)为例:
adb -s 8BF4C20825006913 shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar:/sdcard/fastbot-thirdpart.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p io.appium.android.apis --agent reuseq --running-minutes 3 --throttle 500 -v -v --bugreport --output-directory /sdcard/crash-dump.log
结果说明
注意事项
totalActivities:通过framework接口 PackageManager.getPackageInfo 获取,这包含app中所有的Activity,其中也包含了很多废弃、不可见、不可达等Activity。
【常见问题】启动fastbot提示ava.lang.UnsatisfiedLinkError: dlopen failed: library "/data/local/tmp/arm64-v8a/libfastbot_native.so" not found。
【解决方法】未将libs下的文件push到手机/data/local/tmp目录下。
用adb push libs\arm64-v8a libs\armeabi-v7a libs\x86 libs\x86_64 /data/local/tmp/推送到对应目录下,再次启动fastbot就正常了。
以上来自:Fastbot_Android/handbook-cn.md at main · bytedance/Fastbot_Android · GitHub