2

有没有办法将Android Monkey的随机运行保存到具有正确格式的脚本中,以便以后通过运行:

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

编辑:

我知道有一个种子标志 ( -s),但这不是我想要的。在将生成的脚本反馈给猴子之前,我必须能够使用它。

4

2 回答 2

2

这不是一种简单的方法,但您可以对猴子脚本源进行逆向工程,以创建一个脚本,该脚本接受猴子命令的输出并生成猴子脚本。

所以你可以运行:

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

接着*:

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

例如,monkey 调用的一个输出:

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 taps命令转换为猴子脚本格式(因为它们更快),所以我认为可以为此制作一个通用脚本。

*注:convert-to-monkey-script.sh不存在。正如我所说,有人可以做到

于 2019-09-12T04:56:55.417 回答
1

没有保存脚本的选项,但您可以使用在随机数生成器中充当种子的种子,因此相同的种子会导致相同的事件。这是一个例子:

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

这将在种子值为 '123' 的包 'com.package' 上运行 Monkey 并产生 500 个事件。

于 2018-04-20T00:36:00.120 回答