Android自动化解锁脚本实现解析
Android自动化测试有很多方式,常见的包括MonkeyRunner,Robotium,SL4A,Java Instrumentation,Shell脚本等(随机点击的Monkey测试太过低级不在此列)。因测试需要,便在网上百度一下Android自动化测试脚本编写,自己动手完成Shell脚本,来通过脚本自动化测试一些需要的操作,有时候是非常的实用!
参考文档:http://blog.csdn.net/xbalien29/article/details/12977047
手机上有很多输入设备,这些设备的编号每个手机都不同,因此我们需要首先了解这个手机上都有哪些输入设备,然后通过脚本操作这些输入设备,实现一些想要的操作,进而通过循环实现自动化测试。
> adb shell cat /proc/bus/input/devices
这条命令就是显示系统的输入设备列表,自己需要去了解这些设备的含义,进而去操作这些设备!
选择一个合适的设备来进行我们的输入测试,对于大多数情况来说,一般只需要用到键盘和屏幕触摸输入,下面我们以屏幕触摸输入为例。将用到两个对应的命令:getevent和sendevent,顾名思义,一个是获取事件,另一个则是发送模拟事件。
用getevent了解设备运作
首先我们随便执行一条getevent来监听Handler event0(event0为屏幕事件):
> adb shell getevent /dev/input/event0
滑动解锁便会输出这些event消息
但这些type和code究竟是什么意思呢?输入以下指令
> adb shell getevent -p/dev/input/event0
了解这些event的含义,你才能写出自己想要实现操作的脚本!
有了以上知识作为基础,我们就可以开始着手编写我们自己的自动化测试脚本了
使用sendevent模拟事件
先看看sendevent的使用方法:
> adb shell sendevent –h
use: sendevent device type code value
先做个简单的测试,我们回到桌面准备模拟一遍刚才点击的动作,如果成功的话会进入刚刚那个app。利用sendevent编写模拟事件脚本lock_test.sh:
#!/bin/bash ###@fantasyhujian### num=1 while true do adb shell sendevent /dev/input/event1 1$((0x14a)) $((0x01)) adb shell sendevent /dev/input/event1 3$((0x30)) $((0xc8)) adb shell sendevent /dev/input/event1 3$((0x35)) $((0x186)) adb shell sendevent /dev/input/event1 3$((0x36)) $((0x1d1)) adb shell sendevent /dev/input/event1 3$((0x32)) $((0x01)) adb shell sendevent /dev/input/event1 0$((0x02)) $((0x00)) adb shell sendevent /dev/input/event1 0$((0x00)) $((0x00)) ##/***点击屏幕的解锁开始位置***/## adb shell sendevent /dev/input/event1 3$((0x30)) $((0xc8)) adb shell sendevent /dev/input/event1 3$((0x35)) $((0x186)) adb shell sendevent /dev/input/event1 3$((0x36)) $((0x31d)) adb shell sendevent /dev/input/event1 3$((0x32)) $((0x01)) ##/***下拉滑动解锁***/## adb shell sendevent /dev/input/event1 0$((0x02)) $((0x00)) adb shell sendevent /dev/input/event1 0$((0x00)) $((0x00)) adb shell sendevent /dev/input/event1 3$((0x30)) $((0x00)) adb shell sendevent /dev/input/event1 1$((0x14a)) $((0x00)) adb shell sendevent /dev/input/event1 0$((0x00)) $((0x00)) ##/***离开触屏,完成解锁***/## sleep 2 adb shell sendevent /dev/input/event0 1$((0x74)) $((0x01)) adb shell sendevent /dev/input/event0 0$((0x00)) $((0x00)) adb shell sendevent /dev/input/event0 1$((0x74)) $((0x00)) adb shell sendevent /dev/input/event0 0$((0x00)) $((0x00)) ##/***模拟按键锁屏,然后按开机键亮屏***/## sleep 2 num=$(($num+1)) echo $num done ##/***循环计数***/##
以上脚本实现自动化滑动解锁,并完成计数!
执行脚本,便可完成自动化滑动解锁测试!
这样我们成功的实现了一个滑动解锁测试,如果想模拟其他的动作,可以尝试自己动手观察一下设备接收到的事件,再通过脚本实现出来就行!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。