monkey脚本实现有序用户操作流

monkey随机测试都会了,就是一条命令,好处是简单粗略的判断一下app的稳定性。如果能通过脚本完成有序用户操作流,那就离实际情况更近了一步。下面跟我一起来学习吧。

一、先学习一下monkey执行脚本的命令 -f 脚本。

命令:adb shell monkey -p 包名 -v -f /sdcard/monkey.script times  >d:/ monkey.txt

脚本可以为任何类型,txt,script等都可以

先运行一下,找找感觉。

如从网上找到一段脚本:

//header
      type= raw events
      count= 10
      speed= 1.0
  //line at the end of the header means that below it is the context of script
      start data >>
      DispatchPointer(5109520,5109520,0,230.75429,458.1814,0.20784314,
          0.06666667,0,0.0,0.0,65539,0)
      DispatchKey(5113146,5113146,0,20,0,0,0,0)
      DispatchFlip(true)
      
type指明类型

count说明执行次数,但是这里改成任何值都执行一次,monkey命令可以指定执行次数,这里也就无所谓了

speed命令执行速率。改动无影响,可以通过monkey命令行指定。

以上三个参数改动都没什么影响,一般不做改动。

start data >>相当于一个入口,说明脚本从下面开始执行


把这段脚本存在c盘的根目录下,取名monkey.script,把这个脚本发送到手机的sd卡中



看看是否发送成功,ls后看到有mokey.script就证明成功



在app上运行脚本

adb shell monkey -p 包名 -v -f  /sdcard/monkey.script  times 可以看到真机的app已经按照脚本在跑了,并且在命令行显示脚本事件。




adb shell monkey -p 包名 -v -f  /sdcard/monkey.script  times >d:/ monkey.txt,到处到电脑,进行查看



二、脚本用到的API

在MonkeySourceScript.java中规定了如下api可以供用户使用

 privatestaticfinalString EVENT_KEYWORD_POINTER ="DispatchPointer";
 
DispatchPointer(long downTime, long eventTime, int action,

   float x, float y, float pressure, float size, int metaState,

   float xPrecision, float yPrecision, int device, int edgeFlags)

 
privatestaticfinalString EVENT_KEYWORD_TRACKBALL ="DispatchTrackball";
 
DispatchTrackball(long downTime, long eventTime, int action,

   float x, float y, float pressure, float size, int metaState,

   float xPrecision, float yPrecision, int device, int edgeFlags)

 
 
privatestaticfinalString EVENT_KEYWORD_KEY ="DispatchKey";
 
DispatchKey(long downTime, long eventTime, int action, int code,

   int repeat, int metaState, int device, int scancode)

 
 
privatestaticfinalString EVENT_KEYWORD_FLIP ="DispatchFlip";
 
DispatchFlip(boolean keyboardOpen)

 
 
privatestaticfinalString EVENT_KEYWORD_KEYPRESS ="DispatchPress";
 
DispatchPress(int keyCode)

 
 
   privatestaticfinalString EVENT_KEYWORD_ACTIVITY ="LaunchActivity";
 
LaunchActivity(String pkg_name, String cl_name)

 
 
privatestaticfinalString EVENT_KEYWORD_INSTRUMENTATION ="LaunchInstrumentation";
LaunchInstrumentation(String test_name, String runner_name)

 
 
privatestaticfinalString EVENT_KEYWORD_WAIT ="UserWait";
 
UserWait(long sleeptime)

 
 
privatestaticfinalString EVENT_KEYWORD_LONGPRESS ="LongPress";
 
LongPress(int keyCode)

 
 
privatestaticfinalString EVENT_KEYWORD_POWERLOG ="PowerLog";
 
PowerLog(String power_log_type)

PowerLog(String power_log_type, String test_case_status)

 
privatestaticfinalString EVENT_KEYWORD_WRITEPOWERLOG ="WriteLog";
 
WriteLog: write power log to sdcard

 
privatestaticfinalString EVENT_KEYWORD_RUNCMD ="RunCmd";
 
RunCmd(String cmd):执行cmd命令

 
private

ps:退出shell exit

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值