簡體   English   中英

僅在子活動中使用Monkey(android調試)

[英]Using Monkey in a subactivity only (android debugging)

我正在嘗試使用Monkey debuggin工具(來自adb)對我的應用程序的一部分進行壓力測試。 由於Monkey以完全隨機的方式運行,我希望它專注於可能包含我正在尋找的錯誤的代碼部分(非常罕見的錯誤,我不知道如何復制它)。

因此,在我的主要活動中,我有6個按鈕,每個按鈕都會激活一個新活動。 我想將猴子設置為只查看其中一個活動,並且每個活動都可以從中查看。 我找不到合理的方法來做到這一點。

我試過了
adb shell monkey -p my.package.name -c android.intent.category.MONKEY 1000
在我的清單文件中,我參加了一些我感興趣的活動:

        <intent-filter>
            <category android:name="android.intent.category.MONKEY"/>                
        </intent-filter>

但它沒有用。 Monkey仍然會激活未按此標記分類的活動。 猴子在選定的子活動中工作至關重要,因為在我實際想要測試的子活動之外,它浪費了大約95%的時間在我的應用程序中漫游。

此外,我嘗試了一些簡單的腳本來啟動所需的子活動,但沒有成功。

尋求任何幫助,
干杯,
kajman

我知道它有點晚了但是這里的方法更加健壯 - 使用這樣的代碼:

ActivityManager activityManager;
activityManager =  (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

if(!activityManager.isUserAMonkey()) {
    //stuff you want to execute anywhere but monkey test
});

我在使用類別限制猴子時遇到了一些問題。 我認為它並不打算像你想象的那樣工作。 怎么樣呢? 我沒有明確的想法,只是試驗它。 文檔很差。

對於您的問題,您可以考慮以下方法

  1. 將您的子活動放在一個子包下,並允許僅使用-p選項訪問該子包
  2. 在代碼中添加一些限制,以防止在應用程序內部導航。 例如,設置onClickListeners不執行任何操作,或者在滿足某些特定條件時禁用正在測試的活動的后退按鈕。

PS你可以使用adb shell am start來啟動所需的子活動。 同樣糟糕的文檔,沒有示例,但操作是您在AndroidManifest中的活動的intent-filter中定義的操作的名稱。 例如,名稱是活動名稱

adb shell am start -a my.package.app.ACTION1 -n my.package.app/.sub.MyActivity

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM