システムの運用保守をやってると、必ず実機確認(サービス正常性確認)というモノをやらされる訳であります。
スマホアプリ操作なんかだと、複雑なうえに素早く実施しないとイケない。
はっきり言って、アラフォー男子には限界があります。そこで自動化を思いつきます。
FRep - Finger Replayerが有力そうだけど、Root化しないとイケない?業務端末では無理です!!
有償で良さ気なソフトもありそうですが、まずは自力でチャレンジ。調べて見るとadbコマンドを使ってタップやスワイプのイベントを端末に送信できることがわかりました。早速、作業に取り掛かります。
1. Android SDK をインストール
ここからAndroid SDKをダウンロードします。
サイトの下の方に「SDK Tools Only」があるので、そこから[installer_r24.2-windows.exe]をダウンロードしてインストールします。
次にシステム環境変数の中の[Path]変数を編集し、以下のパスを登録します。
"C:\android-sdk-windows\platforms"
"C:\android-sdk-windows\tools"
※"C:\"はご自身のインストール先によって異なります。
2. PCにAndroid端末を繋げる
4. 実際にコマンドで画面を操作してみる
5. 本題の自動化を試みる
スマホアプリ操作なんかだと、複雑なうえに素早く実施しないとイケない。
はっきり言って、アラフォー男子には限界があります。そこで自動化を思いつきます。
FRep - Finger Replayerが有力そうだけど、Root化しないとイケない?業務端末では無理です!!
有償で良さ気なソフトもありそうですが、まずは自力でチャレンジ。調べて見るとadbコマンドを使ってタップやスワイプのイベントを端末に送信できることがわかりました。早速、作業に取り掛かります。
2015/05/05 時点でリリースされている最新版を使って開発環境を構築します。
開発環境となるPCのOSはWindows7 Professional SP1 64bit。
作業は全て管理者権限が付与されたユーザで実施しています。
1. Android SDK をインストール
ここからAndroid SDKをダウンロードします。
サイトの下の方に「SDK Tools Only」があるので、そこから[installer_r24.2-windows.exe]をダウンロードしてインストールします。
次にシステム環境変数の中の[Path]変数を編集し、以下のパスを登録します。
"C:\android-sdk-windows\platforms"
"C:\android-sdk-windows\tools"
※"C:\"はご自身のインストール先によって異なります。
2. PCにAndroid端末を繋げる
①Android端末本体の「設定」から「アプリケーション」>「開発」>「USBデバッグ」にチェック。
②Android端末をUSBでPCに接続。
③コマンドプロンプトを立ち上げ、adbコマンドで端末の接続を確認。
> adb devices
以上で準備が整いました。3. 画面キャプチャを撮って、座標を調べる
次に画面を操作する為、座標を調べます。画面キャプチャをペイント等のアプリで開いてみましょう。図の左下に座標が表示されます。ここではFacebookアイコンにカーソルを当てています。
4. 実際にコマンドで画面を操作してみる
DoSプロンプトから以下のコマンドを入力してみましょう。
> adb shell input tap 1185 1713
ここでは、PCにつないだ端末の画面でFacebookアイコンがタップされました。このようにタップであれば「adb shell input tap X Y」、スワイプであれば「adb shell input swipe X1 Y1 X2 Y2」コマンドを使えば、画面を操作することができます。
※XYは座標
5. 本題の自動化を試みる
コマンドと座標の組み合わせをバッチファイルにしてしまえばよい。
バッチファイル:hoge.bat
@echo off SET startdate=%date% SET starttime=%time% SET /p ans="Run?(y)>" IF /i NOT "%ans%" == "y" GOTO END echo "アプリの起動" adb shell input tap 1185 1713 rem SET /p ans="exit?(n)>" IF /i "%ans%" == "n" GOTO END echo "ボタンをタップ"adb shell input tap 900 580 :END echo 処理開始:%startdate% %starttime% echo 処理終了:%date% %time% @echo on
このようなバッチファイルが用意できたら、DoSプロンプトから実行してみましょう。
> hoge.bat
勝手に端末が動き出したと思います。今回のバッチではSETコマンドで実行可否を判定しています。終了させない場合は、1アクション毎に"n"以外をキー入力すると実行される為、半自動化となっています。
半自動化にしたのは、画面のロード時間が必要とされる為です。用途にあわせてSLEEP等を代用して貰えれば、自動化されたバッチ処理が実現できると思います。
コメント
コメントを投稿