一、 Android Monkey簡介
Android Monkey是一個命令行工具,可以用來隨機測試安卓應用程序,其核心目的是在不需要過多人工干預的情況下,找到應用程序中的錯誤或崩潰現象,並通過測試報告展示測試結果。除了Android Monkey,還有類似的工具,比如Selendroid、Appium、Robotium和Calabash ,但是它們的測試重點或者測試方法和Monkey有所不同。
具體來說,Android Monkey的本質就是模擬一個快速且不可預知的用戶交互行為序列,然後收集應用程序的崩潰信息、ANR信息(即應用程序未響應)和應用程序的其他穩定性問題。這種隨機的、高並發的測試方式可以有效的檢測出應用程序中的潛在缺陷。
$ adb shell monkey --pct-touch 50 --pct-motion 25 --pct-nav 13 --pct-majornav 7 --pct-syskeys 5 -v 1000
上述命令中的每一個參數都會影響Monkey的測試場景,比如此處的指定了模擬觸摸事件的比例,指定了甩動事件或軌跡事件的比例,其他參數也有類似的作用,詳見官方文檔。
二、 Android Monkey測試優點
Android Monkey相較於其他測試方式有以下優點:
1. 可以隨機進行測試
與人工測試的精確測試方式相比,Android Monkey模擬的測試行為是不可預知的,這意味着它可以在更大的狀態空間內隨機執行測試,從而提高測試效率。
2. 能夠重現測試結果
由於是隨機測試,每次測試結果會不一樣,但是命令行下的Monkey工具可以使用一個“seed”參數來重現相同的測試。這個seed是在執行命令時自定義的一個值,用於初始化測試的隨機數種子,從而保證需要重現某一個結果時,可以用相同的隨機數種子執行Monkey。另外,在Android日誌系統 (logcat) 中,測試操作會被標記為Monkey操作,從而幫助開發人員輕鬆識別測試期間發生的任何問題。
3. 能夠自動測試代碼分支
Android Monkey的隨機性能夠保證儘可能多的測試應用程序中各分支的代碼,這對於代碼覆蓋率的計算非常有用,同時也使得開發人員更加信任測試報告。
總體來說,使用Android Monkey進行自動化測試可以高效地發現應用程序中潛在的缺陷,同時通過穩定性測試報告展示測試結果,方便開發人員進行問題追蹤和修復。
三、 Android Monkey的Test Suite
根據上述Monkey測試的優點,我們可以使用Monkey作為自動化測試套件來測試Android應用程序。自動化套件由以下幾部分組成:
1.測試計劃(Test Plan)
測試計劃指定了測試目標、測試的範圍和測試要求。在測試計劃中,主要是描述軟件測試的範圍和測試的策略,同時指定測試目標在哪些環境中進行測試,什麼時間段進行測試,選定哪些人員進行測試等。
2.測試用例(Test Cases)
測試用例是描述測試場景和執行過程的具體步驟,測試用例應該包含測試機器狀態配置、Android Monkey參數設置、測試目標應用程序資料、自動化測試流程等相關信息。
$ adb shell monkey --pct-touch 50 --pct-motion 25 --pct-nav 13 --pct-majornav 7 --pct-syskeys 5 -v 1000
3.測試腳本(Test Script)
測試腳本是將測試用例轉化為可以執行的測試腳本,不同的測試套件可以使用不同的測試腳本語言,比如Python、Ruby等,但是一般推薦使用Python。
import os import time package_name = "com.example.testapp" monkey_command = "adb shell monkey -p " + package_name + " --pct-touch 50 --pct-motion 25 --pct-nav 13 --pct-majornav 7 --pct-syskeys 5 -v 1000" def run_test(): os.system(monkey_command) def main(): while True: run_test() time.sleep(60) if __name__ == "__main__": main()
在這個腳本中,我們定義了一個函數“run_test”,用於執行Android Monkey測試命令。然後在“main”函數中調用“run_test”函數,並且每執行一次Monkey測試就休眠60秒。這個腳本的作用是循環執行Monkey測試。
四、 Android Monkey使用注意事項
最後在使用Android Monkey時需要注意以下事項:
1.使用命令行工具時請謹慎操作
在使用Android Monkey進行測試時,因為測試行為是隨機的,如果測試參數沒有設置好或者沒有過濾掉所有的應用程序,底層系統和其他應用程序將會間歇性地受到測試命令的干擾。從而導致意外效果,甚至是系統故障。因此,在使用Android Monkey進行測試時,請謹慎操作,並仔細檢查測試命令。
2.使用Seed參數進行測試結果重現
在使用Android Monkey進行測試時,一旦發現穩定性問題,應該第一時間把電腦遠程連接到目標安卓設備,使用Shell緩存機制,重現測試結果。另外,可以使用命令行下的“–ignore-crashes”和“–ignore-timeouts”參數跳過失效的測試,從而使Monkey腳本持續執行。
3.正確理解測試模式
Android Monkey支持模式測試和時間測試兩種測試模式。模式測試是通過檢測應用程序是否會觸發monkey事件來判斷測試是否完成。而時間測試是設置執行測試的時間長短,之後停止執行Monkey測試。因此,在使用Monkey時要特別注意測試模式設置,從而確保測試的完備性和準確性。
五、 總結
Android Monkey是一個輕量級、高效的自動化測試工具,能夠有效的測試Android應用程序的穩定性和功能性。同時,在使用Monkey進行測試的過程中,要注意測試命令和測試模式的正確設置,從而得到正確的測試結果。綜合來看,Android Monkey所提供的測試效率和測試能力,能夠滿足當今開發和質量管理的需求,是不可或缺的自動化測試神器之一。
原創文章,作者:NWNH,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/131465.html