有没有办法将Android Monkey的随机运行保存到具有正确格式的脚本中,以便以后通过运行:
adb shell monkey -p <package_name> -f script_file 1
编辑:
我知道有一个种子标志 ( -s
),但这不是我想要的。在将生成的脚本反馈给猴子之前,我必须能够使用它。
有没有办法将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
例如,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
不存在。正如我所说,有人可以做到
没有保存脚本的选项,但您可以使用在随机数生成器中充当种子的种子,因此相同的种子会导致相同的事件。这是一个例子:
adb shell monkey -p com.package -s 123 500
这将在种子值为 '123' 的包 'com.package' 上运行 Monkey 并产生 500 个事件。