#FeatureBlog - 20.4 モバイル オートメーション

モバイル オートメーション Android入門編

初めまして、UiPath で QA Software Engineer をやっていますジェレミィと申します!初めての投稿になりますが、どうぞよろしくお願いいたします。

20.4で新しく出たモバイル オートメーション(Mobile Automation)、待ちに待った機能だと言う人も少なくはないと思います。早速使いたいけどなかなかうまく動かない・セットアップの仕方わからない、そうお困りの方も少なくはないでしょう。

この記事では簡単にモバイル オートメーションパッケージのセットアップとAndroidデバイスでの使い方を紹介したいと思います。

(iOSはMacが必要となるので別途ご紹介する予定ですが、実機がなくてもシミュレーターで実施できるので、iOS派の人も読んでみてください!)

下準備

モバイル オートメーションは他のアクティビティと違い、外部プログラムをいくつかインストールする必要があります。以下、各プログラムを順番に紹介しインストール手順をわかりやすく解説したいと思います。

  1. Java Development Kit (JDK)
  2. Android Studio
  3. Appium

JDK

JDKは Java言語で書かれたアプリなどを動かすために必要なパッケージをまとめたものです。これからダウンロードするAppiumの前提条件の一つになるので、以下のリンクからインストールしましょう。今回はWindows上で実行するため Windowsが32ビットの場合はWindows x86, 64ビットならWindows x64をダウンロードしてください。

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

無事インストールができましたら、環境変数を以下のように設定してみましょう。Windows環境変数の設定方法はこちらの記事を参考にしてください。

変数名
Path 実行パス (%JAVA_HOME%\bin)
JAVA_HOME Javaのインストール場所 (例: C:\Program Files\Java\jre1.8.0_171)

Android Studio

Android StudioはAndroidアプリ開発用のIDE(総合開発環境)です。総合開発環境なので多数のツールが入っているのですが、モバイルオートメーションには端末との通信を補助するADB (Android Debug Bridge) が必須となり、エミュレータでテストを行う場合はAVD (Android Virtual Device) Managerが必要となります。

インストールはこちらのガイドの手順に従ってください。

インストール後、環境変数を以下のように設定してみてください。

変数名
ANDROID_HOME Android SDK インストールパス (参考: Android Studio > [File] > [Other Settings] > [Default Setting Structure…] > “SDK Location”)
Path 実行パス (ex. %ANDROID_HOME%\platform-tools)

私はAndroid端末を持っていないので、この記事ではAndroid Studioの仮想デバイスを使います。端末を持っている方はUSBデバッグを有効にしてください。私みたいに持っていない方は、こちらのガイドを使い仮想デバイスを作ってみてください!

Appium

Appiumはモバイル用のテスト自動化ツールです。モバイルオートメーションアクティビティはAppiumを使いデバイスと通信をし、コマンドなどを送るのでアクティビティの使用する際にはAppiumを起動する必要があります。

AppiumのWindows版はこちらでダウンロードできます。

これからモバイルオートメーションのワークフローを作成するので、前もってAppiumサーバーを起動してみましょう。

まずはAppium Desktopを開きます。

image

UIが英語だった場合、View > Languages から日本語に変えます。

image

あとは簡単です。「サーバーを起動する」ボタンをクリックしてサーバーを起動しましょう。

このような画面が出てきたら起動完了です!

実際に使ってみましょう

下準備に少し時間がかかってしまったけれどこれでモバイルの自動化がやっとできる!と思った方。残念ながらワークフローを作り始めるにはデバイスマネージャーの設定を先にする必要があります。あともう一息なので頑張りましょう!

デバイスマネージャーの設定

モバイルデバイスマネージャーはモバイルオートメーションパッケージについてくる、端末とUiPath Studioを繋げるGUIアプリケーションです。まず新しいモバイルテストプロジェクトを作ってみましょう。

UiPath Studioを起動し、スタートメニューからモバイルテストプロジェクトを選択してください。

image

各フィールドを埋めて、「作成」をクリックしてください。

image

これで新しいプロジェクトが開かれるはずです。モバイルテストプロジェクトを選んだので、モバイルオートメーション用のパッケージはインストール済みのはずですが、念のためにパッケージマネージャーを開いて確認しましょう。

ありましたね。UiPath.MobileAutomation.Activitiesの最新版。

早速ですがモバイルデバイスマネージャーを開いてみましょう。Studioのリボンメニューにモバイルオートメーションという新しい項目があるかと思いますので、そこからデバイスマネージャーを開いてみてください。

すると、このような画面が出てきます。

さて、これでAndroid端末の設定ができます!次は仮想デバイスを立ち上げて、デバイスマネージャーに繋げましょう。この記事ではAndroid Studioのエミュレータを使いますが、Android端末を持っている方は仮想デバイスの立ち上げをスキップし、USBで端末をパソコンにつなげ、デバイスマネージャーにつなげるところから始めてください。

ここで必ずAppiumのサーバーが起動されていることを確認してください!

仮想デバイスの立ち上げ方

では、Android StudioのAVDを使い先ほど作った仮想デバイスを立ち上げてみましょう。

まずはAndroid StudioからConfigure > AVD Managerをクリックします。

Android Virtual Device Managerが出てきたら、Android Studioセットアップ後に作った仮想デバイスのStartボタンを押します。

少し時間がかかりますが、これでエミュレータが起動したら準備完了です!これでデバイスマネージャーにつなげる準備ができました。

デバイスの設定

先ほど開けたデバイスマネージャーの画面からデバイスを追加することができます。まずは左メニューの「デバイス」タブをクリックし、「+」ボタンを押します。

「デバイスを接続」フォームに接続するエミュレータ・端末の情報を入れていきましょう。

名前はわかりやすいものにしましょう。私は「デモ用Nexus」にしました。

Appium URLは先ほど立ち上げたAppiumサーバーのURLになります。フォーマットはこのようになります: http://localhost:<ポート番号>/wd/hub。<ポート番号>はAppiumサーバーを立ち上げたとき指定したものになります。既定値は4723です。

image

プラットフォームは繋げるデバイスのプラットフォームになります。今回はAndroidデバイスを繋げるので、Androidを選択しました。

デバイス名は本来繋げるデバイスに紐づいている名前なのですが、実はなんでもいいらしいので適当に埋めました(笑)。困ったらAVDのName値を使ってください。

プラットフォームバージョンはデバイスのAndroidバージョンになります。端末を使っている方はこちらの記事を参考にしてください。エミュレータの方はAVDのTarget値を使いましょう。私のエミュレータのOSバージョンはAndroid 9.0なのでプラットフォームバージョンを9にしました。

これで準備完了です!「保存して閉じる」をクリックすると、登録したデバイスが左に出てきます。

image

デバイスとの接続

デバイスの上をホバーするとオプションが表示されます。一番右にある再生ボタンをクリックして、実際にデバイスを繋げてみましょう。この時点でAppiumサーバーが立ち上がっていて、エミュレータが開いていること・端末がUSBでパソコンに繋がっていることを確認した上、adb devicesコマンドでデバイスが認識されているか確認してください。 詳しくはこちらで。

image

「接続を作成」画面では何も触らず、「接続」をクリック。

image

デバイスの画面がデバイスマネージャーの右側に表示されたら成功です!

アプリケーションを追加

少し補足にはなりますが、これから作るワークフローのためにアプリケーションを設定してみましょう。アプリケーションを追加することによってデバイスを立ち上げると一緒にその設定したアプリを起動することができます。今回のデモではエミュレーターデバイスに入っている「電卓」アプリを追加してみます。

まずは左のメニューから「アプリケーション」を選択し、「+」ボタンをクリックします。

image

「アプリケーションを追加」画面が表示されるので、そこに「電卓」アプリケーションの情報を以下のように入力し、「保存して閉じる」をクリックします。

それでは試してみましょうか。左側に新しく追加したアプリケーションがあるはずなので、デバイスと同じようにホバーして再生ボタンをクリックします。「接続を作成」画面で先ほど作ったデバイスを選択し、「接続」をクリックします。

image

なんと、立ち上がり後ホーム画面ではなく電卓が表示されるようになりました!これでデバイス内の動作を行わず、すぐテスト・自動化したいアプリを起動することができます。

簡単なワークフローの作成

待ちに待ったワークフローを作成する時間が来ました。セットアップ、多少難しく時間がかかったとは思いますが、ここまで来たら後は思い存分モバイルオートメーションのアクティビティで遊び実験するのみですね!では、さっき設定したデバイスとアプリケーション使い簡単な自動化を作ってみましょう。この記事はセットアップ重視であまりアクティビティの深堀りなどはしませんが、新しくワークフローを作るときどこから始めればいいかだけ解説したいと思います。このデモでは電卓を使い簡単な足し算をし、その結果を取得してメッセージボックスで出力します。

さて、早速ですが「プロジェクト」タブにあるTestCase.xamlを開きましょう。

image

次に「アクティビティ」パネルからモバイルオートメーション > モバイルデバイス >「モバイル デバイスの接続」アクティビティをワークフローに入れてみましょう。

image

これはExcelやGSuiteで見たことがある「スコープアクティビティ」と同じようなものです。他のアクティビティは「モバイル デバイスの接続」の内部でのみ有効になります。

image

次にデザインパネルから「接続の詳細を設定」をクリックしてください。表示されたメニューから先ほど設定したデバイスと電卓アプリケーションを選択してください。

image

「保存」を押せば準備完了なので、早速アクティビティを使いUIを動かしてみましょう!UI系のアクティビティはすべてモバイルオートメーション > UI Automationの配下にあります。今回は「タップ」、「要素の有無を検出」、「テキストを取得」を使いたいと思います。

image

まずは「タップ」をデザインパネルに足しましょう。「ターゲットを指定」をクリックすると、普段慣れているブラウザやデスクトップの自動化で使うUIAutomationと同じような光景がデバイスマネージャー上で見えますね。

ここで数字の「6」を選択し、「確認」ボタンを押します。

ワークフローは今このように見えたらバッチリです。

image

同じ動作を繰り返して「+」、「5」、と「=」をタップするようにします。

終わりましたら一旦動かしてみましょう。ファイルを実行し、端末・エミュレータに目を離さずワークフローの実行を見守りましょう。うまく動けば6+5の足し算が行われ、最後は11という答えが出るはずです。

無事成功したということなので、ワークフローを完成させましょう。「要素の有無を検出」アクティビティを使い、ちゃんと答えが出ているかどうかを確認しましょう。

最後に「テキストを取得」で答えを「足し算答え」という変数に出力し、「メッセージボックス」を使い「足し算答え」を表示しましょう。

image

これで一通りワークフローの作成が終わったので、最初から最後まで流してみましょう。「ファイルを実行」し、端末・エミュレータに集中しましょう。前と同じく足し算をしますが、今度は最後にメッセージボックスで「11」という答えが出力されたら成功です!

image

以上、モバイルオートメーション入門編でした。機会がありましたらまた別の記事でもう少し深堀したりiOSのセットアップもカバーしたいのですが、私もまだ勉強中なのでもうしばらくお待ちください(笑)。モバイルアプリの自動化に興味がある方はぜひ試してみてください!

デモ用ワークフロー.zip (32.3 KB)

5 Likes

@Jeremy_Woffinden
非常に役立つ情報をご提供いただき、ありがとうございました。
お陰様で電卓操作ができました。

フォーラムには英語での会話や動画、チュートリアルがありますが
英語が苦手な私はこの様な日本語の解説を待っておりました。

■つまずいた点
1、Android Studioで仮想デバイスを作成するところ
AVD Manager がどこにあるのか分からなくて、試行錯誤。
どこで見つけたのか覚えてませんが作成できました。

2、フローのテスト
ずっとモバイルデバイスマネージャを見て、うまく動かねー
でもエラーにならねー、訳わからねー状態だったのですが
Android Studioから起動したAndroid Emulatorで動作していることに気が付きました。

■使い道
Android アプリを開発する会社の人がテストを自動化する。
これしか思いつかなかったのですが、
仮想デバイスにUiPath Orchestratorのインストールができましたので
これを操作したくなりました。
そこで、

■質問です。
モバイルデバイスマネージャーのアプリケーションに
UiPath Orchestratorを追加したいのですが、
アプリのパッケージ、アプリのアクティビティパラメタには
何を設定したら良いのでしょうか。ご教示下さい。

今後も新機能の使用方法解説記事を期待しております。

@ken_infield

ご返信遅くなり申し訳ございません。
お役に立ててうれしく思います。また、フィードバックありがとうございました!

質問の答えですが、Mobile Orchestratorをデバイスにインストールして、「アプリケーションを追加」画面でこのように設定してみてください:

@Jeremy_Woffinden
ご回答ありがとうございます。
やってみます。
度々すみませんが、パラメラの調べ方をご存知でしたらご教示下さい。

@ken_infield

私はAPKを直接ダウンロードし、Android StudioでManifest.xmlファイルからパラメタの情報を調べました。

少し調べてみたところ、adbで出すことができるらしいです。エミュレータ・アプリを開いた状態でコマンドプロンプトで以下のコマンドを入力することによってパラメタの情報を入手できます。

adb shell
dumpsys window | grep -E mCurrentFocus

赤がアプリのパッケージ、緑がアプリのアクティビティになります。

先ほど載せたスクリーンショットとアプリのアクティビティ名が違いますが、こっちも動くことが確認できました。これですとCloud Platform/オンプレを選ぶ画面が開かれます。

@Jeremy_Woffinden
ご教示いただき、誠にありがとうございます。
お陰様でMobile Orchestratorにも接続できました。
色々遊んでみます。

1 Like