Android模拟用户点击的实现方法

  

  

Android模拟用户点击。在自动化测试中可使用的工具。
  

  

可以利用亚行命令,也可以使用Android SDK中的monkeyrunner工具。

  
      <李> win7 - 64   <李> gitbash李   
  

  

主要使用输入命令

        用法:输入…   输入文本& lt; string>   输入keyevent & lt;关键代码或name>   输入丝锥& lt; x>& lt; y>   输入刷卡& lt; x1>& lt; y1>& lt; x2>& lt; y2>      

keyevent指的是android对应的键码,比如回家键的键码=3,返回键的键码=4

  

丝锥是触屏幕的事件,只需给出x, y坐标即可

  

滑动模拟滑动的事件,给出起点和终点的坐标即可

  

编写一个蝙蝠脚本,模拟用户滑动

        @echo掉   回波模拟开始- - - - - - - - - - - - - - - - - - - - - - -      :tag_start   回声运行……   亚行shell输入刷卡650 250 200 666   @ping 127.0.0.1 - n 8在空   goto tag_start      echo - - - - - - - - - - - -模拟- - - - - - - - - - - -完成   暂停      

死循环发送滑动命令,延时语句@ping 127.0.0.1 - n 8祝辞nul

  

  

环境配置,配置好Java与Android SDK的环境变量。手机连接到电脑。
  系统变量中加入ANDROID_SWT,此例中路径为G: \ SDK工具\ \ lib \ x86_64

  

修改后的脚本rustmonkeyrunner.bat, Windows环境下需要在gitbash或CMD里运行

  

来自unable-to-access-jarfile-framework-monkeyrunner-25-3-2-jar         @echo掉   rem版权(C) 2010年Android开源项目   快速眼动   快速眼动下许可的Apache许可证,2.0版本(“许可证”);   雷你可能不使用这个文件除了遵守许可证。   雷你可能获得许可证的副本   快速眼动   rem http://www.apache.org/licenses/license - 2.0   快速眼动   快速眼动,除非适用法律要求或书面同意,软件   快速眼动在许可证下发布的是“goto SetPath分布式% swt_path %   回声SWT文件夹“% swt_path %”并不存在。   回声请设置ANDROID_SWT指向包含swt的文件夹。jar的平台。   退出/B      :SetPath      ”称之为“% java_exe %”-Xmx512m -Djava.ext.dirs=% frameworkdir %; % swt_path %”-Dcom.android.monkeyrunner.bindir=. . \ . .\平台工具jar % jarpath % % * 之前      

运行脚本

        Administrator@rust-PC ~   美元/cygdrive/g/SDK/工具/bin/rustmonkeyrunner.bat   Jython 2.5.3 (2.5: c56500f08d34 +, 2012年8月13日,14:54:35)   [Java HotSpot VM (TM) 64位服务器(甲骨文公司)]>   在在在从com.android。monkeyrunner进口monkeyrunner, MonkeyDevice MonkeyImage      

尝试运行脚本an_test2.py

        进口操作系统      打印(“导入模块…”)   从com.android。monkeyrunner进口monkeyrunner, MonkeyDevice MonkeyImage      打印(“等待连接…”)   设备=MonkeyRunner.waitForConnection ()   打印(“设备发现!”)      s_wid=int (device.getProperty (“display.width”)) #获取屏幕宽度像素   s_height=int (device.getProperty (“display.height”)) #获取屏幕高度像素      打印(“build.version。sdk”+ str (device.getProperty (“build.version.sdk”)))   打印(“显示。宽度”+ str (s_wid))   打印(“显示。高度“+ str (s_height))      drag_point_left_x=20   drag_point_right_x=s_wid - 20   drag_point_y=s_height/2      因为我在范围(0,10):   打印(“当前循环”+ str(我))   设备。拖(drag_point_right_x drag_point_y), (drag_point_left_x drag_point_y), 1.0, 50)   打印(“等待…”)   MonkeyRunner.sleep (1)   打印(“继续”)   设备。拖(drag_point_left_x drag_point_y), (drag_point_right_x drag_point_y), 0.5, 3)   MonkeyRunner.sleep (3)      打印(“- - - - - - - - - -完成- - - - - - - - - -”)      

命令行直接执行,可以看到执行结果和相应的报错信息

        C:\Users\ Administrator> G: \ SDK \ \ bin \ rustmonkeyrunner工具。蝙蝠H: \ fisher_p \ py_ws \ an_test2.py   导入模块……   等待连接…   设备发现!   build.version。sdk 23   显示。宽度1440   显示。身高2560   电流环是0   等待……   继续   电流环是1   # .....   - - - - - - -完成- - - - - - -      

测试中发现,脚本可以运行在系统应用。若当前打开的是第三方应用,会直接报错,获取不到相应信息

Android模拟用户点击的实现方法