fastbot的使用

Fastbot官网链接中文手册

一、基础稳定性

  • 环境准备(前提已安装好adb及jdk基础环境)

  1.最好使用AppetizerIO工具安装:Fastbot-android工具(官方的文件有bug没更新)

   1.1主要这几个目录文件:arm64-v8a、armeabi-v7a、x86、x86_64已打包放奶牛快传 口令s4j4ma,建议复制arm和x86放目录/data/local/tmp,把*.jar放/sdcard根目录下(只要后边支行命令时 能找到对应的目录文件即可)

   1.2添加限定词,可提升模型能力aapt dump --values strings [install_package_path.apk] > max.valid.strings

    adb push max.valid.strings /sdcard 

  2.运行命令

   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 com.xqhy.legendbox --agent reuseq --running-minutes 10 --throttle 800 -v -v --bugreport --output-directory /sdcard/fastbot_log

    --throttle 事件间隔(500~800)

    --bugreport 崩溃时在sdcard下会生成crash-dump.log

      捕获到Java Crash、ANR、Nativie Crash会以追加方式写入/sdcard/crash-dump.log文件

      捕获的Anr 同时也会写入 /sdcard/oom-traces.log 文件

    --output-directory /sdcard/fastbot_log 指定日志存储目录 

  3.输入内容定制(使用手册

   apk安装地址:支持随机输入apk设置手机默认输入法为ADBKeyBoard

   3.1发送文本:adb shell am broadcast -a ADB_INPUT_TEXT --es msg '你好嗎? Hello?'

   3.2发送键盘码或官网):db shell am broadcast -a ADB_INPUT_CODE --ei code 67

   3.3编辑器操作码:adb shell am broadcast -a ADB_EDITOR_CODE --ei code 2

   3.4发送unicode:adb shell am broadcast -a ADB_INPUT_CHARS --eia chars '128568,32,67,97,116'

   3.5组合键:Ctrl + A (4096 is META_CONTROL_ON, 8192 is META_CONTROL_LEFT_ON, 29 is KEYCODE_A)

    adb shell am broadcast -a ADB_INPUT_TEXT --es mcode '4096,29' 

   3.6清空文本:adb shell am broadcast -a ADB_CLEAR_TEXT

    

  4.使用Maxim的monkey.jar获取当前页面所属Activity(这里下载jar文件)

   adb shell CLASSPATH=/sdcard/monkey.jar:/sdcard/framework.jar exec app_process /system/bin tv.panda.test.monkey.api.CurrentActivity

  5.已遍历的数据行为模型复用(可以将一台测试覆盖率较高的设备的数据拿来复用)

   将 /sdcard/fastbot_[packagename].fbm 这个文件转存到其他手机即可

二、砖家加强模式(实际应用比较复杂)

  • 白名单模式

  1.创建文件awl.strings(只能使用该限定名称),内容为需要遍历的activity页面,格式如下:

  文件推送到目录:adb push awl.strings /sdcard

com.xqhy.legendbox.main.BoxMainActivity
com.xqhy.legendbox.main.home.view.NewGameRecommendActivity

  命令行参数则为(多了黄色部分指定白名单路径的参数):白名单参数测试结果建议使用 --pkg-whitelist-file,能提升10倍左右的覆盖率(官方文档未更新有问题)

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 com.xqhy.legendbox --agent reuseq --act-whitelist-file /sdcard/awl.strings --running-minutes 3 --throttle 800 -v -v --bugreport --output-directory /sdcard/fastbot_log

  2.创建自定义事件序列,创建文件 max.xpath.actions(只能使用该限定名称),格式如下,页面切换一定要使用绝对路径顺序不然难以固定:

  文件推送到目录:adb push  max.xpath.actions /sdcard

[
{
"prop":1,
"activity":"com.xqhy.legendbox.main.BoxMainActivity",
"times":1,
"actions":[
{
"xpath":"//*[@resource-id='com.xqhy.legendbox:id/home_text']",
"action":"CLICK",
"text":"首页",
"clearText":false,
"throttle":1000
},
{
"xpath":"//*[@resource-id='com.xqhy.legendbox:id/tv_tab_title']",
"action":"CLICK",
"text":"游戏",
"clearText":false,
"throttle":1000
},
{
"xpath":"//*[@resource-id='com.xqhy.legendbox:id/tv_name']",
"action":"CLICK",
"text":"新游",
"clearText":false,
"throttle":1000
}
]
}
]

   3.模糊测试及随机事件

   控制具体的事件概率,防止APP切出异常(概率设置为0)

max.fuzzingRate = 0.01D  //事件总概率
max.doRotateFuzzing = 0.15
max.doAppSwitchFuzzing = 0  //切换app测试时使用
max.doTrackballFuzzing = 0.15
max.doNavKeyFuzzing = 0.15
max.doKeyCodeFuzzing = 0.15
max.doSystemKeyFuzzing = 0.15  //系统事件也会切换app,比如home、back、tasklist等
max.doDragFuzzing = 0.5
max.doPinchZoomFuzzing = 0.15 
max.doClickFuzzing = 0.7

   

   控制设备顶部控件(飞行模式、wifi开关、控件激活)

max.startMutation = 0.3D
max.doMutationAirplaneFuzzing = 0.001
max.doMutationMutationAlwaysFinishActivitysFuzzing = 0.1
max.doMutationWifiFuzzing = 0.001

 

    

posted on 2023-01-30 14:57  GSY921  阅读(422)  评论(0编辑  收藏  举报

导航