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