Android自动化解锁脚本实现解析

Android自动化测试有很多方式,常见的包括MonkeyRunner,Robotium,SL4A,Java Instrumentation,Shell脚本等(随机点击的Monkey测试太过低级不在此列)。因测试需要,便在网上百度一下Android自动化测试脚本编写,自己动手完成Shell脚本,来通过脚本自动化测试一些需要的操作,有时候是非常的实用!

手机上有很多输入设备,这些设备的编号每个手机都不同,因此我们需要首先了解这个手机上都有哪些输入设备,然后通过脚本操作这些输入设备,实现一些想要的操作,进而通过循环实现自动化测试。

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
##/***循环计数***/##

以上脚本实现自动化滑动解锁,并完成计数!

执行脚本,便可完

成自动化滑动解锁测试!

这样我们成功的实现了一个滑动解锁测试,如果想模拟其他的动作,可以尝试自己动手观察一下设备接收到的事件,再通过脚本实现出来就行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值