My package is named com.mywebsite.banana.
- I want to have a seed, so the test is repeatable: -s 13
- I want to have a fairly low-level of verbosity: -v
- I want to run 500 psuedo-random commands: 500
I'm calling monkey like this:
adb shell monkey -s 13 -p com.mywebsite.banana -v 500
My output:
:Monkey: seed=13 count=500
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
No activities found to run, monkey aborted
My AndroidManifest.xml has this in it:
<categoy android:name="android.intent.category.LAUNCHER"/>
What am I doing wrong? Is there something I need to add to my app before running the monkey? The main activity is located in com.mywebsite.banana - is that the correct path to be passed in, or should it go all the way to the activity like this: com.mywebsite.banana.activityName?
From what I've read, it seems as though I'm doing this correctly:
- http://dnlkntt.wordpress.com/2014/04/01/how-to-stress-test-your-android-app-with-monkey/
- http://www.tutorialspoint.com/android/android_testing.htm
- http://hariniachala.blogspot.com/2011/09/android-application-ui-testing-with.html
Edit
Attempt 1:
adb shell monkey -p com.mywebsite.banana -c intent.CATEGORY_LAUNCHER -v 500
Result 1:
:Monkey: seed=13 count=500
:AllowPackage: com.mywebsite.banana
:IncludeCategory: intent.CATEGORY_LAUNCHER
// Warning: no activities found for category intent.CATEGORY_LAUNCHER
** No activities found to run, monkey aborted
Attempt 2:
adb shell monkey -p com.mywebsite.banana -c android.intent.category.MONKEY -v 500
Result 2:
:Monkey: seed=13 count=500
:AllowPackage: com.mywebsite.banana
:IncludeCategory: android.intent.category.MONKEY
No activities found to run, monkey aborted
Attempt 3:
adb shell monkey -p com.mywebsite.banana -c android.intent.category.LAUNCHER -c android.intent.category.MONKEY -v 500
Result 3:
:Monkey: seed=13 count=500
:AllowPackage: com.mywebsite.banana
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
No activities found to run, monkey aborted
Some of the manifest:
<activity
android:name="com.mywebsite.banana.FRCActivity"
android:launchMode="singleTask"
android:configChanges="orientation|screenSize"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="none" />
<category android:name="android.intent.category.MONKEY"/>
</intent-filter>
</activity>
Also tried this version of the manifest, with no change:
<activity
android:name="com.mywebsite.banana.FRCActivity"
android:launchMode="singleTask"
android:configChanges="orientation|screenSize"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.MONKEY"/>
</intent-filter>
</activity>
OK! I figured this out. The error that is shown is indeed correct:
This means that the package name I was using was incorrect. I stared and stared and stared, and finally my colleague mentioned that our build system changes the name of the package before pushing it to the device
So, if you are getting this error, make sure you actually know what the name of your package is.
So, the final command that worked was this:
By the way, correct output from this monkey command looks like this:
One final note: I did NOT need to add
android.intent.category.MONKEY
to my AndroidManifest.xml file!