Сохранить случайный запуск Android Monkey в формате сценария для последующего воспроизведения

Есть ли способ сохранить случайный запуск Android Monkey в сценарий с правильным форматом, чтобы потом воспроизвести его, выполнив:

adb shell monkey -p <package_name> -f script_file 1

РЕДАКТИРОВАТЬ:

Я знаю, что есть флаг семени (-s), но это не то, что я хочу. Я должен быть в состоянии работать с сгенерированным сценарием, прежде чем передать его Обезьяне.

1 ответ

Непростой способ, но вы можете провести обратный инжиниринг исходного кода сценария обезьяны, чтобы создать сценарий, который берет выходные данные команды обезьяны и генерирует сценарий обезьяны.

Итак, вы могли запустить:

adb shell monkey -p <package_name> -v -v 1 > monkey-logs.txt

А потом*:

convert-to-monkey-script.sh monkey-logs.txt

Например, один вывод вызова обезьяны:

Replaying 11 events with speed 1.0
:Sending Touch (ACTION_DOWN): 0:(450.0,450.0)
:Sending Touch (ACTION_UP): 0:(450.0,450.0)
Sleeping for 45 milliseconds
...

Становится следующим обезьяньим сценарием (прочтите исходный код обезьяны, чтобы лучше понять аргументы):

type= raw events
count= 2
speed= 1.0
start data >>
DispatchPointer(6934862,6934862,0,450.0,450.0,0.0,0.0,0,1.0,1.0,0,0)
DispatchPointer(6934862,6934862,1,450.0,450.0,0.0,0.0,0,1.0,1.0,0,0)

Что можно запустить с помощью (с содержимым выше в файле monkey.script и после нажатия adb):

adb shell monkey -p <package_name> -f monkey.script 1

Я сделал простую суть для себя, что новообращенного ADB ТАПФА команды в формат обезьяна сценария (потому что они быстрее) здесь, так что я думаю, что можно сделать общий сценарий для этого.

*Запись: convert-to-monkey-script.shне существует. Как я уже сказал, кто-то МОЖЕТ это сделать

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

adb shell monkey -p com.package -s 123 500

Это запустит Monkey в пакете com.package со начальным значением 123 и выдаст 500 событий.

Другие вопросы по тегам