標籤:android 觸控螢幕 自動化測試
前提:
在我們應用程式或者在寫Android自動化測試時候常常會需要類比實體按鍵,來給我們做測試用。這也是我要整理的目的。主要的涉及的是Linux Input Event事件。以下的例子基於Android 5.1(Linux-3.10)。
一、利用getevent、sendevent類比按鍵
(1)命令:getevent -t
結果:
...add device 6: /dev/input/event9 bus: 0000 vendor 0000 product 0000 version 0000 name: "msm8994-snd-card Button Jack" location: "ALSA" id: "" version: 1.0.1 events: KEY (0001): 0100 0101 0102 0103 0104 0105 0106 0107 input props: <none> ...
得知:我們所要的耳機按鍵的對應的input事件是event9。
(2)命令:getevent -t /dev/input/event9,使用按耳機按鍵預先擷取耳機事件資訊
結果:
按鍵按下:0001 00e2 000000010000 0000 00000000松下按鍵:0001 00e2 000000000000 0000 00000000
(3)使用sendevent命令類比觸發線控按鍵事件
sendevent /dev/input/event9 0001 00e2 00000001sendevent /dev/input/event9 0000 0000 00000000**這個之間要延時500ms~1s,不然會被系統誤認為是誤觸發的**sendevent /dev/input/event9 0001 00e2 00000000sendevent /dev/input/event9 0000 0000 00000000
註:只要是input的事件都是可以用sendevent來類比,但有時候就力不從心了如類比觸控螢幕的滑動,如果用sendevent就需要大量的命令來類比。這時可以用input命令來代替。
二、利用input命令實現類比按鍵、觸控螢幕操作
(1)類比按鍵
命令:input keyevent {索引值}
已知Android手機音量+(KEYCODE_VOLUME_UP)的索引值是24,那使用
input keyevent 24就可類比按下音量+鍵。更多的索引值見附件1。
(2)類比觸控螢幕操作(點按、滑動)
命令:input swipe {起始點x軸值} {起始點y軸值} {終點x軸值} {終點y軸值} {滑動時間[可忽略]},時間單位:ms
例如:從x=100,y=500,滑到x=600,y=500,時間100ms
input swipe 100 500 600 500 100
命令:input tap {x軸值} {y軸值}
例如:點擊x=100,y=500這個點,類比點擊APP表徵圖開啟應用
input tap 100 500
附件1
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Android(Linux)類比按鍵、觸控螢幕等事件