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模拟用户点击的实现方法