本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Fastbot是字节跳动开源的基于model-based testing结合机器学习、强化学习的APP稳定性测试工具。优势明显:
1. Android多os兼容:同时兼容Android5-11,兼容国内各厂商定制化的Android系统及原生Android系统;
2. 事件快速注入:继承原生Monkey的优势,快速点击,每秒最高可发送12个事件;
3. 专家系统:不同业务线支持不同的个性化需求,业务深度定制化;
4. 智能化测试:基于model-based 边遍历边建模,利用强化学习等算法做高收益决策;
5. 跨平台:支持非标准化控件,YOLOv3、ocr、cv分割等UI图像识别能力。
1.环境准备
将 framework.jar , monkeyq.jar push 到手机上某个目录中,建议/sdcard。
adb push framework.jar /sdcard
adb push monkeyq.jar /sdcard
资料包下载地址:www.aliyundrive.com/s/Vk2L63bAA…
2.shell运行
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
参数说明
1. -s 设备号 #多个设备需要指定设备号,单独设备无需此-s参数
2. -p 包名 # 遍历app的包名,-p+包名
3. --agent robot # 遍历模式,无需更改
4. --running-minutes 遍历时长(分钟) # 遍历时间:--running-minutes 时间
5. --throttle 事件频率 # 遍历事件频率,建议为500-800
包名获取方式
aapt dump badging .apk文件
3.屏蔽控件或区域
试用需求:测试过程中“半路”中途退出登录,屏蔽退出登录按钮。
配置方法:
1.在PC端新建max.widget.black文件(名称固定为:max.widget.black),内容如下:
2.将max.widget.black文件push到手机端的sdcard目录下,目录必须为sdcard。
[{ "activity":"com.lililili.lulululu.ui.activity.mine.mine_userinfo.MineSettingsActivity", "xpath": "//*[@resource-id='com.lililili.lulululu:id/btn_quit']"}]
activity
配置activity:当activity与currentactivity一致时执行xpath匹配
activity获取方式:使用Maxim获取当前控件所属的Activity;也可以借助工具获取。
adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin com.lililili.lulululu.monkey.api.CurrentActivity
xpath
配置xpath:查找匹配的控件,屏蔽点击该控件
xpath获取方式:使用Android SDK自带的页面属性检查工具UiAutomatorViewer(需提前配置好Android SDK)
尽量使用resource-id作为xpath路径,也可以组合使用比如:
"xpath": "//*[@resource-id='xxx'and @text='xx']"
更多用法详见git:Fastbot-Android