読者です 読者をやめる 読者になる 読者になる

Hack the World!

プログラミングや,ネットワークに関する話題を取り扱っています.知識をつけて,優雅にお仕事するのを目指しています.

MonkeyRunner Recoder

ひっそりと事を進めているMonkeyrunnerについての紹介

API翻訳記事はこちら
http://erlang.web.fc2.com/monkeyrunner/

紹介スライドはこちら
https://docs.google.com/present/view?id=dgnrpbbb_69hbppjgfp



本日の題材:MonkeyRunner Recoder

用途:機能テスト・再帰テストの簡単で視覚的な作成
副用途:画面をみんなに見せたい(VNCとか入れなくてもいいよ、ただフリック操作とか"現状"苦手)


実はソースコードの中には動作させるためのスクリプト*1が入っています。

from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder

device = mr.waitForConnection()
recorder.start(device)


これを実行すると、端末画面と操作の記録画面が表示されます。


リアルタイムに端末・画面、共に双方向に表示されますが、たまに接続が切れます。
(そして接続が切れるとRefreshDisplayボタンを押さなければ最新の画面は表示されない。。。)

また、MonkeyDevice.takeSnapshot()を使ってる(と思われる)ので描画は若干遅目です。



操作が記録し終わったら、ExportActionを押して出力
mydroid/sdk/monkeyrunner/scripts/monkey_playback.py
を利用して再現



完成度は、イマイチという印象
レコーダーで記録した画面とplaybackで再現した画面が一致していなかったら、エラーを出すとかそういう機能が欲しかった。(Runnerでは出来ること)

なので、"今は(?)"画面を見せる単純な操作を記録するツールとして使って、テストはゴリゴリpythonコードを書くのが正解、な気がします。
うちの会社の人のように「Pythonなんて書きたくねーよ。お前やれ」とか言う人にはオススメかも(最終的にコード各人は一人・・・ぇ


副用途の方が大きいと思うので動画にしてみました。


動画で紹介し忘れましたが、カメラのようにオーバーレイ領域を使っているものはキャプチャー出来ません。




次回はMonkeyRunnerの環境Jythonを利用して、ログを取得してニンマリするような事について書きたいと思います。

*1:mydroid/sdk/monkeyrunner/scripts/monkey_recoder.py