将安卓猴子随机运行保存为脚本格式,以便以后重播



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

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

编辑:

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

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

所以你可以运行:

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

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

没有保存脚本的选项,但您可以使用像随机数生成器中的种子一样的种子,以便相同的种子导致相同的事件。下面是一个示例:

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

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

最新更新