Monkey如何执行脚本—精通移动App测试实战(4)

发表于:2016-4-06 09:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:于涌 王磊 曹向志    来源:51Testing软件测试网原创

  (51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。)
  下面,让我们一起来分析下这段脚本代码的内容,先来看一下以下语句。
  type= raw events
  count = 1
  speed = 1.0
  start data >>
  这几行是Monkey脚本的固定部分内容,我们不需要改变,需要注意的是"start data >>"是大小写敏感的,且它们之间空白处仅为1个空格。
  LaunchActivity(com.tencent.mobileqq,com.tencent.mobileqq.activity.SplashActivity)
  UserWait(5000)
  这2行语句的意思是,启动手机QQ,并且等待5秒,以使得手机QQ的登陆界面显示出来。
  DispatchPointer(0,0, 0, 138, 456, 0, 0, 0, 0, 0, 0, 0)
  DispatchPointer(0,0, 1, 138, 456, 0, 0, 0, 0, 0, 0, 0)
  UserWait(200)
  待手机QQ应用的登陆界面显示出来以后,我们首先要在QQ的登陆账号里输入我的QQ账号,所以我们先在QQ号的输入框单击一下,以使得其获得焦点,为后续输入打下基础。
DispatchPress(KEYCODE_1)
UserWait(300)
DispatchPress(KEYCODE_7)
UserWait(300)
DispatchPress(KEYCODE_3)
UserWait(300)
DispatchPress(KEYCODE_3)
UserWait(300)
DispatchPress(KEYCODE_9)
UserWait(300)
DispatchPress(KEYCODE_1)
UserWait(300)
DispatchPress(KEYCODE_6)
UserWait(300)
DispatchPress(KEYCODE_1)
UserWait(300)
DispatchPress(KEYCODE_8)
UserWait(300)
  接下来,输入了我的QQ号,"173391618",请大家注意一下,我在每次输入后停顿了300毫秒,请大家想一想这是为什么呢?这是为了保证脚本操作步骤不至于操作过快而引起光标位置错乱而设置的一个延时,有的时候我们要结合自己测试的实际应用的操作模式、方法和步骤特点设置适当的延时时间,以保证整个业务能够正确完成。
DispatchPointer(0,0, 0, 28, 520, 0, 0, 0, 0, 0, 0, 0)
DispatchPointer(0,0, 1, 28, 520, 0, 0, 0, 0, 0, 0, 0)
UserWait(200)
DispatchPress(KEYCODE_A)
UserWait(200)
DispatchPress(KEYCODE_B)
UserWait(200)
DispatchPress(KEYCODE_C)
UserWait(200)
DispatchPress(KEYCODE_D)
UserWait(200)
DispatchPress(KEYCODE_E)
UserWait(200)
DispatchPress(KEYCODE_F)
UserWait(200)
DispatchPress(KEYCODE_1)
UserWait(200)
DispatchPress(KEYCODE_2)
UserWait(200)
  然后,我们又将光标定位到密码输入框,输入密码"ABCDEF12"(注:请输入您自己的密码,后续我的密码会变哦)。
  DispatchPointer(0,0, 0, 347, 652, 0, 0, 0, 0, 0, 0, 0)
  DispatchPointer(0,0, 1, 347, 652, 0, 0, 0, 0, 0, 0, 0)
  UserWait(200)
  最后,我们单击"登录"按钮,从而完成了完整的手机QQ用户登录过程的业务脚本实现。
  这看起来是不是很简单啊,可能有人会问您怎么知道"账号"、"密码"文本框和"登录"按钮对应的坐标值呢?这是一个很好的问题,大家可以使用自己的Android SDK下面的"uiautomatorviewer"工具,比如,我的Android SDK安装在"E:\android-sdk",那么该工具对应的存放路径为"E:\android-sdk\tools\uiautomatorviewer.bat",我们双击这个处理文件,就可以打开它。而后自己就可以通过使用USB线连接手机,使用该工具获得自己当前手机界面的信息了,当捕捉到界面信息以后,在PC端移动鼠标就可以看到对应的坐标信息了,如图4-12所示,在本书的7.2.1章节有该工具详细的使用说明,请关心这部分内容的读者自行阅读,这里不再赘述。
  
  我们还可以启用手机的"开发者选项"中的"显示指针位置",这时在屏幕的上方会显示焦点所在位置横纵坐标位置的相关信息,如图4-13所示。当然,如果自己还有别的方法可以获得相关的坐标信息,也可以使用其他方法。另外,关于"开发者选项"中的"显示指针位置"设置的信息,可能在不同类型的手机其所在的位置也不尽相同,有的手机甚至没有该功能,所以还是请大家灵活运用我交给大家的方法,不要钻牛角尖,方法很多不必凡事都和我的操作一样,达到目的即可,在可能的情况下,我建议大家都使用"uiautomatorviewer"工具获取相关的信息。
  上面我们介绍了手机QQ登录业务脚本的实现,接下来,就需要检验一下脚本是否能够成功运行。我们首先需要做的就是将保存在本地的脚本文件上传到手机,可以通过命令"adb push c:\QQTest.ms  /sdcard/"将脚本文件上传到SD卡的根目录以后,就可以通过"adb  shell  monkey  -f  /sdcard/QQTest.ms  1"来运行脚本了,当然如果大家有需要也可以适当的加入别的参数,如:-v 参数,可以查看更多执行过程日志信息。
本文选自《精通移动App测试实战:技术、工具和案例》第三章,本站经人民邮电出版社和作者的授权。
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
相关文章:
ADB Push指令实例讲解—精通移动App测试实战(3)
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号