Android monkey test choose a specific activity

前端 未结 4 2024
野的像风
野的像风 2020-12-30 13:45

I\'m using the Android monkey test to test my android apps, it\'s works for my app, and is very cool. but I\'d like to test an application activity in specific, how could i

相关标签:
4条回答
  • 2020-12-30 14:16

    For me just worked with:

    -c android.intent.category.LAUNCHER
    

    according to my manifest standard category entry:

    <activity
                    android:name="pl.com.infinitysoftware.carassistant.app.CarAssistantMainActivity"
                    android:label="@string/app_name"
                    android:launchMode="singleTask"
                    android:configChanges="orientation|screenSize">
                    <intent-filter>
                        <action android:name="android.intent.action.MAIN" />
                        <category android:name="android.intent.category.LAUNCHER" />
                    </intent-filter>
    </activity>
    
    0 讨论(0)
  • 2020-12-30 14:36

    With Android monkey test i cannot test a specific activity, but with Android monkey runner i can do python scripts to simulate a monkey test, so i did a python script open the my activity and init the monkey test :)

    #! /usr/bin/env monkeyrunner
    
    from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
    from random import randint
    
    print "get device"
    device = MonkeyRunner.waitForConnection()
    package = 'my.packaget'
    activity = 'my.package.activity'
    runComponent = package + '/' + activity
    device.startActivity(component=runComponent)
    
    #use commands like device.touch and device.drag to simulate a navigation and open my activity
    
    #with your activity opened start your monkey test
    print "start monkey test"
    for i in range(1, 1000):
        #here i go emulate only simple touchs, but i can emulate swiper keyevents and more... :D
        device.touch(randint(0, 1000), randint(0, 800), 'DOWN_AND_UP')
    
    print "end monkey test"
    

    save teste.py and run

    $ monkeyrunner teste.py
    
    0 讨论(0)
  • 2020-12-30 14:40

    From the docs:

    -c If you specify one or more categories this way, the Monkey will only allow the system to visit activities that are listed with one of the specified categories. If you don't specify any categories, the Monkey will select activities listed with the category Intent.CATEGORY_LAUNCHER or Intent.CATEGORY_MONKEY. To specify multiple categories, use the -c option multiple times — one -c option per category.

    so you remove the DEFAULT and LAUNCHER category from your command, add the MONKEY one to the activity you want to test in your manifest and the command is now simply:

    $ adb shell monkey -p my.package -c -v 500 -s "a random number"
    
    0 讨论(0)
  • 2020-12-30 14:43

    This worked for me. Add category in manifest:

    <activity android:name="MonkeyActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.MONKEY" />
        </intent-filter>
    </activity>
    

    Where MonkeyActivity will perform an initialization setup for testing and from shell:

    adb shell monkey -p my.package -c android.intent.category.MONKEY -v 500
    
    0 讨论(0)
提交回复
热议问题