fastbot是字节跳动开源的一款APP稳定性测试工具。分为fastbot-andoird和fastbot-ios。今天我们就一起研究一下怎么使用android的fastbot。 github官方地址放在文末
fastbot-android介绍
基于 Model-based Testing 结合机器学习、强化学习的APP 稳定性测试工具。当我们日常测试app的过程找那个,如果有稳定性的测试需求,那么可以考虑使用fastbot。
fastbot的支持的功能
- 支持android多个版本,支持android 5- 14. 兼容原生的android系统以及国内厂商魔改的android系统
- 事件快速注入: 继承原生 Monkey 的优势,快速点击,每秒最高可发送 12 个事件;
- 专家系统: 不同业务线支持不同的个性化需求,业务深度定制化;
-
智能化测试: 基于 Model-based 边遍历边建模,利用强化学习等算法做高收益决策;
听着挺高大上,很牛逼,我们来进入安装过程吧
fastbot-android的安装和使用
- 我们需要将 framework.jar fastbot-thirdpart.jar monkeyq.jar push 到手机上某个目录中,建议/sdcard,push libs/* 到 /data/local/tmp/ 下。这几个对应的jar包和依赖在github上可以下载。考虑到有的同学可能网络不好,我已经准备好了压缩包。可以来’https://vwo50.club/archives/1185.html‘获取。
- adb连接android手机(请确保调试模式 和adb都已经正确安装。百度很多教程)
- 下载好对应的jar包和libs包后,我们解压出来,传输到手机上对应的目录。 执行
adb push *.jar /sdcard
和adb push libs/* /data/local/tmp/
windows的话一个一个push 即可 - 接下来我们要确定我们要测试的app的包名。android包名一般是 com.xxx.xxx的规范形式。那么假如你不知道的话,你可以问android开发。 你也可以启动对应的app然后adb连接手机后执行:
adb shell dumpsys activity activities | grep mResumedActivity
然后屏幕输出的内容里, com.xx.xx即为包名。 -
到这一步,启动所需要的环境就oK了。gkd。下一步
,原神,启动!启动fastbot
fastbot启动会有很多参数,具体的参数意义如下:
- -s 设备号 多个设备需要指定设备号,单独设备无需此-s参数
- -p 包名 遍历app的包名,-p+包名
- –agent reuseq 遍历模式,无需更改
- –running-minutes 遍历时长(分钟) # 遍历时间:–running-minutes 时间
- –throttle 事件频率 遍历事件频率,建议为500-800
- 可选参数
- –bugreport 崩溃时保存bug report log
- –output-directory /sdcard/xxx log/crash 另存目录
执行以下命令来启动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 事件频率(500-800) -v -v 如果你只连接了一个android设备,切记取消 -s 直接执行 adb shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar:/sdcard/fastbot-thirdpart.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p com.XX.XXX --agent reuseq --running-minutes 20 --throttle 600 -v -v --bugreport --output-directory /sdcard/test/log/crash
即可。
如果不出意外的话,fastbot将会在你的终端启动,你将看到你手机的app将会进行自动遍历activity的操作
结果获取
- Crash、ANR 捕获会存放在/sdcard/crash-dump.log文件
- 捕获的Anr 同时也会写入 /sdcard/oom-traces.log 文件
- 如果你在命令里指定了。–output-directory /sdcard/xxx 路径,那么结果运行完之后来对应的路径获取即可。
4.正常跑完Fastbot会在当前shell中打印totalActivity(总activity列表),ExploredActivity(遍历到的activity列表)以及本次遍历的总覆盖率
至此,本教程就结束了。
github地址: https://github.com/bytedance/Fastbot_Android/tree/main
还有一些更高级的用法可以来参考:https://github.com/bytedance/Fastbot_Android/blob/main/handbook-cn.md来学习。
创作不易,如果您觉得这篇文章对你有帮助,不妨给我点个赞,这将是我继续分享优质内容的动力。