保存Android Monkey随机运行到脚本格式以便以后重播

时间:2018-04-19 20:48:40

标签: android android-testing android-monkey

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

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

修改

我知道有种子旗帜(-s),但那不是我想要的。我必须能够使用生成的脚本,然后再将其反馈给Monkey。

2 个答案:

答案 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.