Androidの操作を自動化する
Androidアプリの試験を自動化するため、Rubyでスクリプトを書きました。
実際の操作と比べると実行速度は遅いですが、特に繰り返し試験では自動化のメリットは大きいです。
使い方
AndroidとPCをUSB接続し、コマンドプロンプトから実行
- 操作をログファイルへ記録
>ruby autoInput.rb r
- ログファイルから自動入力
>ruby autoInput.rb p
- ログファイルから自動入力(ループ)
>ruby autoInput.rb p l
解説
Androidでのユーザー入力イベントはadb shell geteventで取得出来ます。
>adb shell getevent /dev/input/event0 0003 002f 00000000 0003 0030 0000000a :
これをadb shell sendeventに渡してやれば、コマンドラインからAndroidへ入力出来ます。
>adb shell sendevent /dev/input/event0 0 0 0 >adb shell sendevent /dev/input/event0 3 48 10 :
geteventで取得できる値は16進数なので、sendeventに渡す際に10進数へ変換する必要があります。
Rubyからのadb shellへの入出力はopen3を使い標準入出力経由で実行しました。
また、実際の操作時間に合わせるため入力イベントの時間差分を記録し、再生時にその時間分sleepさせています。