Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android自動化解鎖腳本實現解析

Android自動化解鎖腳本實現解析

編輯:關於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
##/***循環計數***/##

以上腳本實現自動化滑動解鎖,並完成計數!

執行腳本,便可完成自動化滑動解鎖測試!

這樣我們成功的實現了一個滑動解鎖測試,如果想模擬其他的動作,可以嘗試自己動手觀察一下設備接收到的事件,再通過腳本實現出來就行!








						
		
	
				
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved