有没有办法将Android Monkey的随机运行保存到具有适当格式的脚本中,以便稍后通过运行来重放它:
adb shell monkey -p <package_name> -f script_file 1
修改
我知道有种子旗帜(-s
),但那不是我想要的。我必须能够使用生成的脚本,然后再将其反馈给Monkey。
答案 0 :(得分:1)
这不是一个简单的方法,但是您可以对monkey script source进行逆向工程,以创建一个脚本,该脚本接收Monkey命令的输出并生成Monkey脚本。
因此您可以运行:
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
...
成为以下猴子脚本(阅读monkey source以更好地理解参数):
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 tap 命令转换为猴子脚本格式(因为它们更快)here,所以我认为可以为此编写通用脚本。
*注意:convert-to-monkey-script.sh
不存在。正如我所说,有人可以做到
答案 1 :(得分:0)
There is no option for saving script, but you can use seed that acts like a seed in random number generator so same seed leads to same events. Here is an example:
adb shell monkey -p com.package -s 123 500
This will run Monkey on package 'com.package' with seed value of '123' and produce 500 events.