Изменение ориентации экрана во время бега обезьяны

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

Если идея по этому поводу, пожалуйста, дайте мне знать.


person msk    schedule 13.10.2012    source источник
comment
Что именно вы хотите сделать?? Можешь упростить?   -  person Chintan Raghwani    schedule 13.10.2012
comment
изменить ориентацию с помощью... setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); и setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);   -  person Parag Ghetiya    schedule 13.10.2012
comment
Я хочу повернуть ориентацию экрана во время выполнения обезьяньих тестов. Есть ли способ сделать это?   -  person msk    schedule 13.10.2012


Ответы (3)


У Monkey есть ряд недокументированных опций, в том числе --pct-rotation. Добавьте этот переключатель в свою команду и наблюдайте, как ваш экран вращается, как будто им овладели демоны:

До (включая) adb версии 1.0.31:

adb shell monkey -p com.example.app -v --pct-rotation=70 500

Начиная с версии adb 1.0.32:

adb shell monkey -p com.example.app -v --pct-rotation 70 500

Просмотрите метод processOptions() команды обезьяны, чтобы увидеть все поддерживаемые параметры: https://android.googlesource.com/platform/development.git/+/master./cmds/monkey/src/com/android/commands/monkey/Monkey.java

Посмотрите на конструктор класса MonkeySourceRandom, чтобы увидеть проценты по умолчанию для всех типов событий. Это текущие значения в основной ветке на момент написания этого поста. Обратите внимание, что значение по умолчанию для поворота равно 0:

    // default values for random distributions
    // note, these are straight percentages, to match user input (cmd line args)
    // but they will be converted to 0..1 values before the main loop runs.
    mFactors[FACTOR_TOUCH] = 15.0f;
    mFactors[FACTOR_MOTION] = 10.0f;
    mFactors[FACTOR_TRACKBALL] = 15.0f;
    // Adjust the values if we want to enable rotation by default.
    mFactors[FACTOR_ROTATION] = 0.0f;
    mFactors[FACTOR_NAV] = 25.0f;
    mFactors[FACTOR_MAJORNAV] = 15.0f;
    mFactors[FACTOR_SYSOPS] = 2.0f;
    mFactors[FACTOR_APPSWITCH] = 2.0f;
    mFactors[FACTOR_FLIP] = 1.0f;
    mFactors[FACTOR_ANYTHING] = 13.0f;
    mFactors[FACTOR_PINCHZOOM] = 2.0f;

https://android.googlesource.com/platform/development.git/+/master/cmds/monkey/src/com/android/commands/monkey/MonkeySourceRandom.java

person chuckbjones    schedule 27.05.2015
comment
--pct-rotation=70 на самом деле должно быть --pct-rotation 70, по крайней мере, начиная с версии adb 1.0.32. - person Tadej; 10.07.2015

Test Monkey использует случайный ввод. Это изменит ориентацию экрана, но нет гарантии, что это произойдет при любом заданном тестовом запуске.

person CommonsWare    schedule 13.10.2012
comment
Да, нет никакого способа убедиться, что он поймает ориентацию или нет. Я хотел знать, можно ли это сделать с выходом из инструмента обезьяны или нет другого способа сделать это? - person msk; 13.10.2012
comment
@ user1031345: Test Monkey только использует случайный ввод. То, что вы хотите, по определению не случайно. - person CommonsWare; 13.10.2012
comment
Я знал, что обезьяна случайна. Все, что я хочу, это выяснить это при изменении ориентации экрана вместе со случайными входными данными.. - person msk; 14.10.2012
comment
Вы уверены? Я сделал 100000 входов, и ноль вращений. - person Mgamerz; 18.04.2014
comment
@Mgamerz: Возможно, они недавно изменили поведение, но, скорее всего, исторически это повернет экран. - person CommonsWare; 18.04.2014

Хотя нет гарантии, что обезьяна изменит ориентацию во время данного прогона, вы можете достичь желаемого результата, выяснив SEED, который заставит обезьяну изменить ориентацию, и повторно используя этот SEED в будущих прогонах.

# monkey -h
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
              ...
              [-s SEED] [-v [-v] ...]
              ...
person slowpoison    schedule 24.02.2014