有没有办法将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 个事件。