モバイル オートメーション Android入門編
初めまして、UiPath で QA Software Engineer をやっていますジェレミィと申します!初めての投稿になりますが、どうぞよろしくお願いいたします。
20.4で新しく出たモバイル オートメーション(Mobile Automation)、待ちに待った機能だと言う人も少なくはないと思います。早速使いたいけどなかなかうまく動かない・セットアップの仕方わからない、そうお困りの方も少なくはないでしょう。
この記事では簡単にモバイル オートメーションパッケージのセットアップとAndroidデバイスでの使い方を紹介したいと思います。
(iOSはMacが必要となるので別途ご紹介する予定ですが、実機がなくてもシミュレーターで実施できるので、iOS派の人も読んでみてください!)
下準備
モバイル オートメーションは他のアクティビティと違い、外部プログラムをいくつかインストールする必要があります。以下、各プログラムを順番に紹介しインストール手順をわかりやすく解説したいと思います。
- Java Development Kit (JDK)
- Android Studio
- 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を開きます。
UIが英語だった場合、View > Languages から日本語に変えます。
あとは簡単です。「サーバーを起動する」ボタンをクリックしてサーバーを起動しましょう。
このような画面が出てきたら起動完了です!
実際に使ってみましょう
下準備に少し時間がかかってしまったけれどこれでモバイルの自動化がやっとできる!と思った方。残念ながらワークフローを作り始めるにはデバイスマネージャーの設定を先にする必要があります。あともう一息なので頑張りましょう!
デバイスマネージャーの設定
モバイルデバイスマネージャーはモバイルオートメーションパッケージについてくる、端末とUiPath Studioを繋げるGUIアプリケーションです。まず新しいモバイルテストプロジェクトを作ってみましょう。
UiPath Studioを起動し、スタートメニューからモバイルテストプロジェクトを選択してください。
各フィールドを埋めて、「作成」をクリックしてください。
これで新しいプロジェクトが開かれるはずです。モバイルテストプロジェクトを選んだので、モバイルオートメーション用のパッケージはインストール済みのはずですが、念のためにパッケージマネージャーを開いて確認しましょう。
ありましたね。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
です。
プラットフォームは繋げるデバイスのプラットフォームになります。今回はAndroidデバイスを繋げるので、Androidを選択しました。
デバイス名は本来繋げるデバイスに紐づいている名前なのですが、実はなんでもいいらしいので適当に埋めました(笑)。困ったらAVDのName
値を使ってください。
プラットフォームバージョンはデバイスのAndroidバージョンになります。端末を使っている方はこちらの記事を参考にしてください。エミュレータの方はAVDのTarget
値を使いましょう。私のエミュレータのOSバージョンはAndroid 9.0
なのでプラットフォームバージョンを9
にしました。
これで準備完了です!「保存して閉じる」をクリックすると、登録したデバイスが左に出てきます。
デバイスとの接続
デバイスの上をホバーするとオプションが表示されます。一番右にある再生ボタンをクリックして、実際にデバイスを繋げてみましょう。この時点でAppiumサーバーが立ち上がっていて、エミュレータが開いていること・端末がUSBでパソコンに繋がっていることを確認した上、adb devices
コマンドでデバイスが認識されているか確認してください。 詳しくはこちらで。
「接続を作成」画面では何も触らず、「接続」をクリック。
デバイスの画面がデバイスマネージャーの右側に表示されたら成功です!
アプリケーションを追加
少し補足にはなりますが、これから作るワークフローのためにアプリケーションを設定してみましょう。アプリケーションを追加することによってデバイスを立ち上げると一緒にその設定したアプリを起動することができます。今回のデモではエミュレーターデバイスに入っている「電卓」アプリを追加してみます。
まずは左のメニューから「アプリケーション」を選択し、「+」ボタンをクリックします。
「アプリケーションを追加」画面が表示されるので、そこに「電卓」アプリケーションの情報を以下のように入力し、「保存して閉じる」をクリックします。
それでは試してみましょうか。左側に新しく追加したアプリケーションがあるはずなので、デバイスと同じようにホバーして再生ボタンをクリックします。「接続を作成」画面で先ほど作ったデバイスを選択し、「接続」をクリックします。
なんと、立ち上がり後ホーム画面ではなく電卓が表示されるようになりました!これでデバイス内の動作を行わず、すぐテスト・自動化したいアプリを起動することができます。
簡単なワークフローの作成
待ちに待ったワークフローを作成する時間が来ました。セットアップ、多少難しく時間がかかったとは思いますが、ここまで来たら後は思い存分モバイルオートメーションのアクティビティで遊び実験するのみですね!では、さっき設定したデバイスとアプリケーション使い簡単な自動化を作ってみましょう。この記事はセットアップ重視であまりアクティビティの深堀りなどはしませんが、新しくワークフローを作るときどこから始めればいいかだけ解説したいと思います。このデモでは電卓を使い簡単な足し算をし、その結果を取得してメッセージボックスで出力します。
さて、早速ですが「プロジェクト」タブにあるTestCase.xaml
を開きましょう。
次に「アクティビティ」パネルからモバイルオートメーション > モバイルデバイス >「モバイル デバイスの接続」アクティビティをワークフローに入れてみましょう。
これはExcelやGSuiteで見たことがある「スコープアクティビティ」と同じようなものです。他のアクティビティは「モバイル デバイスの接続」の内部でのみ有効になります。
次にデザインパネルから「接続の詳細を設定」をクリックしてください。表示されたメニューから先ほど設定したデバイスと電卓アプリケーションを選択してください。
「保存」を押せば準備完了なので、早速アクティビティを使いUIを動かしてみましょう!UI系のアクティビティはすべてモバイルオートメーション > UI Automationの配下にあります。今回は「タップ」、「要素の有無を検出」、「テキストを取得」を使いたいと思います。
まずは「タップ」をデザインパネルに足しましょう。「ターゲットを指定」をクリックすると、普段慣れているブラウザやデスクトップの自動化で使うUIAutomationと同じような光景がデバイスマネージャー上で見えますね。
ここで数字の「6」を選択し、「確認」ボタンを押します。
ワークフローは今このように見えたらバッチリです。
同じ動作を繰り返して「+」、「5」、と「=」をタップするようにします。
終わりましたら一旦動かしてみましょう。ファイルを実行し、端末・エミュレータに目を離さずワークフローの実行を見守りましょう。うまく動けば6+5
の足し算が行われ、最後は11
という答えが出るはずです。
無事成功したということなので、ワークフローを完成させましょう。「要素の有無を検出」アクティビティを使い、ちゃんと答えが出ているかどうかを確認しましょう。
最後に「テキストを取得」で答えを「足し算答え」という変数に出力し、「メッセージボックス」を使い「足し算答え」を表示しましょう。
これで一通りワークフローの作成が終わったので、最初から最後まで流してみましょう。「ファイルを実行」し、端末・エミュレータに集中しましょう。前と同じく足し算をしますが、今度は最後にメッセージボックスで「11」という答えが出力されたら成功です!
以上、モバイルオートメーション入門編でした。機会がありましたらまた別の記事でもう少し深堀したりiOSのセットアップもカバーしたいのですが、私もまだ勉強中なのでもうしばらくお待ちください(笑)。モバイルアプリの自動化に興味がある方はぜひ試してみてください!
デモ用ワークフロー.zip (32.3 KB)