Тест Android обезьяна выбрать конкретное действие

Я использую тест Android-обезьян для тестирования своих приложений для Android, он работает для моего приложения и очень классный. но я хотел бы проверить активность приложения в частности, как я могу это сделать?

сегодня я тестирую все приложения с:

$ adb shell monkey -p my.package -c android.intent.category.HOME -c android.intent.category.DEFAULT -v 500 -s "a random number"

4 ответа

Решение

С помощью теста Android Monkey я не могу протестировать определенную активность, но с помощью Android Runner Monkey я могу создавать скрипты Py thon для имитации теста на обезьяне, поэтому я сделал скрипт Py thon, чтобы открыть свою деятельность и запустить тест на обезьяны:)

#! /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"

сохранить teste.py и запустить

$ monkeyrunner teste.py

Это сработало для меня. добавлять category в декларации:

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

куда MonkeyActivity выполнит настройку инициализации для тестирования и из оболочки:

adb shell monkey -p my.package -c android.intent.category.MONKEY -v 500

Из документов:

-c Если вы укажете одну или несколько категорий таким образом, Monkey разрешит системе посещать только те действия, которые указаны в одной из указанных категорий. Если вы не укажете ни одной категории, Monkey выберет действия, перечисленные с категорией Intent.CATEGORY_LAUNCHER или Intent.CATEGORY_MONKEY. Чтобы указать несколько категорий, используйте параметр -c несколько раз - один параметр -c на категорию.

поэтому вы удаляете категории DEFAULT и LAUNCHER из вашей команды, добавляете категорию MONKEY к активности, которую вы хотите проверить в манифесте, и теперь команда просто:

$ adb shell monkey -p my.package -c -v 500 -s "a random number"

Для меня просто работал с:

-c android.intent.category.LAUNCHER

согласно моей декларации стандартной записи категории:

<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>
Другие вопросы по тегам