В статье опишу, как запустить Monkey testing на Android с помощью встроенной утилиты. Называется она UI/Application Exerciser Monkey, или просто Обезьянка и позволяет провести стресс-тестирование вашего приложения.
Приложение генерирует огромное количество случайных действий, таких как нажатия, клики, тапы, свайпы, а так же нажатия на системные кнопки.
Предусловие:
- 
    
Установить Android SDK.
 - 
    
Установить тестируемое приложение на устройство \ эмулятор.
 - 
    
Узнать имя пакета Android приложения.
 
Для запуска в консоли пишем:
adb shell monkey -p packagename -v 500где packagename - имя пакета тестируемого приложения, например com.google.gms, а с помощю ключа -v мы передаём количество действий, выполняемых Обезъянкой, в нашем случае 500.- количество необходимых действий и наблюдаем как быстро беспорядочно обезъянка тапаем по экрану нашего приложения.
В таком случае некоторые тапы попадют не только по приложению, но и по системным элементам. Для того, чтобы исключить взаимодействие обезъянки с системными кнопками (Home, Back, App, Sound) необходимо добавить ключ  --pct-syskeys 0, где 0 - коилчество тапо в по системным элементам в процентах, в нашем случае это 0%:
adb shell monkey --pct-syskeys 0 -p packagename -v 500В таком варианте запуска между нажатиями по экрану пауза отсутствует. Для того, чтобы добавить паузу и иметь возможность наблюдать за происходящим на экране добавим ключ --throttle 100 - задержка в миллисекундах между нажатиями:
adb shell monkey --pct-syskeys 0 --throttle 100 -p packagename -v 500Ещё один полезный параметр - номер теста. Если при запуске мы задам номер теста, то при повторном запуске с таким же параметром последовательность действий будет идентична. Это полезно в случае, если во время теста была обнаружена проблема производительности (утекла память), то после исправления проблемы можно проверить с таким же параметром -s N, где N - номер теста. Номер можно автоматически инкрементировать, генерировать случайный или брать, например, номер сборки или ревизию из репозитория, как угодно:
adb shell monkey -s 1 --pct-syskeys 0 --throttle 100 -p packagename -v 500Если во время теста случился крэш, то полезно остановить выполнение Обезъянки, чтобы она не продолжала свою работу. Для этого добавляем параметр --kill-process-after-error:
adb shell monkey -s 1 --pct-syskeys 0 --throttle 100 --kill-process-after-error -p packagename -v 500И наконец, если мы запускаем тесты в атомате и на консоли, то было бы полезно сохранять логи в файл для их дальнейшей обработки или прикрепления в качестве отчёта. Для этого перенаправляем вывод в файл: ` > monkeyreport.txt`
adb shell monkey -s 1 --pct-syskeys 0 --throttle 100 --kill-process-after-error -p packagename -v 500 > monkeyreport.txt