安卓自動化工具--Fastbot 問題總結經驗


Fastbot:行進中的智能 Monkey

背景:

Fastbot是字節跳動基於Monkey進行二次開發的一款工具,相對與Monkey來說會更加智能。

 

原理和源文件參考:

傳送:https://juejin.cn/post/6877360102123241480#heading-0

https://github.com/bytedance/Fastbot_Android

隨機方法:

使用方法:

1.模擬器或者真機連接電腦,用adb devices檢測是否連接成功;

下面是基於真機(小米)模擬

C:\Users\Administrator>adb devices
List of devices attached
0a1e0f3d5    device

注意:手機需要開啟開發者模式和usb授權;手機連接為文件夾模式

2.把兩個附件: framework.jar , monkeyq.jar push 到手機上某個目錄中,建議/sdcard

adb push framework.jar /sdcard

adb push monkeyq.jar /sdcard

備注:真機可能會有權限問題,提示無權限;

解決:使用adb命令:adb shell ls  /sdcard 打印所有文件,發現這個文件夾就是與電腦傳送默認文件夾;

可以通過手機連接電腦,設置為:文件模式,右鍵兩個附件選擇發送到手機,就默認到sdcard這目錄

不知道adb 命令可以參考adb日常使用方法 :https://www.cnblogs.com/shoebill/p/14430554.html

C:\Users\Administrator>adb shell ls /sdcard

3. 運行隨機腳本命令:

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

實例

adb shell CLASSPATH=/data/monkeyq.jar:/data/framework.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p com.test.today --agent robot --running-minutes 10 --throttle 500 -v -v

包需要特別打才能運行執行正常;

建議:執行命令前,先進行登錄,隨機的場景遇到需要登錄的功能,基本跳不過去,登錄后可覆蓋的功能點能加大,相對Monkey隨機覆蓋,此工具覆蓋更大;

 

自定義腳本:

腳本的設計也是基於xpath,結合每個activity,定位到當前的xpath,最后結果發現並不能按照自定義的腳本執行,更加偏向於隨機跑,

把自定義命名為:並放到sdcard 目錄,執行命令:

adb shell CLASSPATH=/data/monkeyq.jar:/data/framework.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p com.test.today --agent robot -v 1#1代表執行次數

分析:

通過打印每個頁面的activity和元素發現,發現有些頁面的activity不一樣的,還是id,name等元素的clickable = false,

懷疑以上兩個原因導致自定義腳本不能如實跑,例如:activity跟腳本不一致,xpath的元素是不可點擊導致,

反思:如果是元素不可點擊,隨機腳本應該也不能正常跑,這里有點矛盾,

有哪位大神有研究,並能正常執行,請指點一下迷津,跪謝!!!

 

教程的列子:

 

實際:

 

 

 遇到查找activity 與 定位元素問題,可以使用下面命令:

#找activity的方法:
#能找到包名和activities,但activities可能是廣告的
aapt dump badging D:news.apk
 
#在啟動app過程 執行下面命令能提過廣告的activities
#例如有啟動頁的情況下,需要那打開a跳過該廣告頁,可以在跳過廣告頁,執行下面的命令即可
adb shell dumpsys window w | findstr \/ | findstr name=

#下載當前頁面的定位和activity信息
adb shell uiautomator dump

 

總結:

通過fastbot 結合手機的性能監控工具,可以運用於穩健性測試與偶現的閃退問題(配合日志捕捉)的發現;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM