前置き
これは僕がまだ20代前半のころ、駆け出しのデザイナーだったときのお話です。
そのときは、開発中のWebアプリケーションへ、入力手順が複雑だけど内容は同じで良いサンプルデータを何十件と登録しまくるという作業を手伝っていました。当時の自分にDBを直接いじる手立てはなく、まともに使える手段はGUIからのマウス/キーボード操作だけ。
どうにかして、この不毛な繰り返し作業を自動化できないか?
そのときに見つけたのが、今回紹介する闇のツールMurGaa Recorderです。
Murgaa Recorder
MurGaa Recorderは、Mac用の強力なマクロツールです。
このツールを使うと、キー入力やマウス操作を完全に記録して再現することができます。それだけではなく、マクロの反復回数や再生速度倍率の変更まで可能です。
(上図)実際はa.b.ボタンを押す動作まで記録されてしまうので、ショートカットキーを登録して記録することを推奨します。
前置きにあったデータ登録の量産作業であれば、1回分の作業を記録して10倍速でリピートさせれば、あとは眺めているだけで一瞬で作業が終わることになります!
さらに、記録したマクロはXMLファイルに書き出しと読み込みができます。これを同僚に配ってさらに量産効率を高めることも可能になりました。
この革命的とも言える効率化手法を発見した僕は、その闇の力に魅入られてしまったのです。
GUI操作自動化の落とし穴
しかし、MurGaa Recorderは決して賞賛できる手法ではありませんでした。
マクロを記録したときの環境を再現しにくい
記録したマクロと完全に同じGUI環境を整えなければ、マクロを再生しても期待した通りに動作しません。
画面サイズ・ウィンドウサイズと位置・OS/ブラウザの表示設定など、パソコンのGUIには数多くの状態があり、これらを記録したときの状態と揃える必要があります。たとえ同僚に自分のマクロを渡したとしても、ほとんどの場合うまくいきません。
記録時と再生時でタイミングが合わない
スペックの違い・PCへの負荷のかかり具合・サーバのレスポンスの違い・ネットワーク速度の違いなど、時間的な不確定要因によって、記録したマクロは簡単に想定外の挙動を引き起こします。
サーバに情報を送信したあと、ブラウザが処理を完了させる前にマクロの次の操作が始まってしまうことはザラでした。その部分も加味してマクロの再生速度をチューニングすると、当初の期待ほど再生速度を上げることはできませんでした。
間違った操作が始まっても止まらない
最も恐しいのが、何かの間違いでマクロが想定外の挙動を始めても手動で停止させるしかないことです。もしマクロが10倍速で動いていた場合、誤った操作も10倍速で実行されることになります。記録した操作が少しズレてしまうだけで、自分のPCやサーバ上のデータを予期しない型で壊してしまうことにもなりかねません。
結局、マクロの動作中は変なことが起きないか目視で監視する必要があったため、ここでも期待したほど楽をすることができませんでした。
おわりに
MurGaa Recorderはどんなものでも反復処理できるため便利な側面もありますが、GUIの自動化に伴う深い闇も教えてくれました。
(あとで知ったことですが、RPAやE2Eテストツールでも同種の難しさがあるようです。)
特にマクロが意図しない動作をしたときの被害は予想がつきにくいため、MurGaa Recorder使う場合は自己責任でお願いします!