fastbot的使用
Fastbot官網(wǎng)鏈接,中文手冊
一、基礎(chǔ)穩(wěn)定性
- 環(huán)境準備(前提已安裝好adb及jdk基礎(chǔ)環(huán)境)
1.最好使用AppetizerIO工具安裝:Fastbot-android工具(官方的文件有bug沒更新)
1.1主要這幾個目錄文件:arm64-v8a、armeabi-v7a、x86、x86_64,已打包放奶??靷?/span> 口令s4j4ma,建議復(fù)制arm和x86放目錄/data/local/tmp,把*.jar放/sdcard根目錄下(只要后邊支行命令時 能找到對應(yīng)的目錄文件即可)
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.輸入內(nèi)容定制(使用手冊)
apk安裝地址:支持隨機輸入apk,設(shè)置手機默認輸入法為ADBKeyBoard
3.1發(fā)送文本:adb shell am broadcast -a ADB_INPUT_TEXT --es msg '你好嗎? Hello?'
3.2發(fā)送鍵盤碼(或官網(wǎng)):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發(fā)送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.已遍歷的數(shù)據(jù)行為模型復(fù)用(可以將一臺測試覆蓋率較高的設(shè)備的數(shù)據(jù)拿來復(fù)用)
將 /sdcard/fastbot_[packagename].fbm 這個文件轉(zhuǎn)存到其他手機即可
二、磚家加強模式(實際應(yīng)用比較復(fù)雜)
- 白名單模式
1.創(chuàng)建文件awl.strings(只能使用該限定名稱),內(nèi)容為需要遍歷的activity頁面,格式如下:
文件推送到目錄:adb push awl.strings /sdcard
com.xqhy.legendbox.main.BoxMainActivity
com.xqhy.legendbox.main.home.view.NewGameRecommendActivity
命令行參數(shù)則為(多了黃色部分指定白名單路徑的參數(shù)):白名單參數(shù)測試結(jié)果建議使用 --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.創(chuàng)建自定義事件序列,創(chuàng)建文件 max.xpath.actions(只能使用該限定名稱),格式如下,頁面切換一定要使用絕對路徑順序不然難以固定:
文件推送到目錄:adb push max.xpath.actions /sdcard
[
{
"prop":1,
"activity":"com.xqhy.legendbox.main.BoxMainActivity",
"times":1,
"actions":[
{
"xpath":"http://*[@resource-id='com.xqhy.legendbox:id/home_text']",
"action":"CLICK",
"text":"首頁",
"clearText":false,
"throttle":1000
},
{
"xpath":"http://*[@resource-id='com.xqhy.legendbox:id/tv_tab_title']",
"action":"CLICK",
"text":"游戲",
"clearText":false,
"throttle":1000
},
{
"xpath":"http://*[@resource-id='com.xqhy.legendbox:id/tv_name']",
"action":"CLICK",
"text":"新游",
"clearText":false,
"throttle":1000
}
]
}
]
3.模糊測試及隨機事件
控制具體的事件概率,防止APP切出異常(概率設(shè)置為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 //系統(tǒng)事件也會切換app,比如home、back、tasklist等
max.doDragFuzzing = 0.5
max.doPinchZoomFuzzing = 0.15
max.doClickFuzzing = 0.7
控制設(shè)備頂部控件(飛行模式、wifi開關(guān)、控件激活)
max.startMutation = 0.3D
max.doMutationAirplaneFuzzing = 0.001
max.doMutationMutationAlwaysFinishActivitysFuzzing = 0.1
max.doMutationWifiFuzzing = 0.001

浙公網(wǎng)安備 33010602011771號