はじめに
Appiumをwindows環境で構築してみようと思いました。androidの自動化が目的です。参考にした情報はこちらです。
公式サイト
http://appium.io/docs/en/about-appium/getting-started/?lang=en書籍
※こちらはたまに眺める程度で使用。環境
環境はこちらです。Windows 10
Android 8 (emulator)
appium 1.15.1
インストール
1.appiumのインストール
インストール方法が2通りあって、npmを使う方法と、デスクトップアプリで入れる方法。npmがわからないので、デスクトップアプリを入れることにしました。
上記サイトのrelease pageからダウンロードをしました。
いろいろなバージョンがあるのですがlatest release を書かれたものをダウンロードしました。
2.ドライバーのインストール
自動化したい端末に合わせてドライバというものをインストールする必要がるようです。手元にあるAndroidでためしたかったので、Androidのドライバをインストールすることにしました。Androidのドライバには2種類あって、EspressoとUIAutomatetor2があります。
flagshipはUIAutomator2の方ということなので、こっちを入れることにしました。
http://appium.io/docs/en/about-appium/getting-started/?lang=en
ドライバを入れるために下記のモジュールをインストールする必要があるため、入れました。こちらのページの「Basic Setup」の記事に従って入れていきました。
https://nodejs.org/en/download/
※npmはNode.jsをインストールすると入ります。
※npmがよくわからないからappiumのデスクトップ版をいれたのですが、ドライバを入れるために結局インストールすることになりました。
https://www.oracle.com/java/technologies/javase-downloads.html
※最新ものを入れました。 最新でよいのかはちょっと不安です。
※この記事でやっていることだけであれば、最新版でもよいのですが、動かないtoolとかもあるのでJDK8のほうが良いかもしれません。
JDK8はoracleのサイトでアカウントを登録しないとダウンロードできないので、ちょっと手間でした。
「C:\Program Files\Java\jdk1.8.0_251」を設定しました。
入っていたバージョンは3.6.3です。
Hide Obsolete Packagesのチェックを外す
Android SDK Tools が表示されるので、チェックしてapplyボタンを押下
sdkのパスはAndroid Studioを起動して、Toolsメニュー - SDKマネージャー を開いて、 Android SDK Locationから確認しました。
※ついでにシステム環境変数のPathに%ANDROID_HOME%\platform-toolsを追加しておくと、のちのち便利です。
npm install appium-uiautomator2-driver
「appium-doctor --android」を実行し、状況をチェック
ここまでで必須のものがOKとなっていることを確認できました。
「・・・this test Apk・・・」というリンクがあるので、そこからダウンロードしました。
これをwindows上にダウンロードします。
※よくわからず、これをemulatorでダウンロードしたりして、四苦八苦しました。
サンプルに合わせてandroid 8のemulatorを作成しました。
テキストに公式サイトのサンプルをそのまま貼り付けます。
app: のところを、デモアプリをダウンロードしたパスに書き換えます。
特に設定等変更せずに、「サーバーVXXXXXを起動する」 ボタンを押す。
index.jsがおいてあるパスにcdコマンドで移動する。
「npm init -y」コマンドを実行
「npm install webdriverio」コマンドを実行
「node index.js」コマンドを実行
※npm XXXは一回やればいいのかなぁ
できた。
(準備1)Node.js (npm)
こちらからダウンロードしてインストールしました。https://nodejs.org/en/download/
※npmはNode.jsをインストールすると入ります。
※npmがよくわからないからappiumのデスクトップ版をいれたのですが、ドライバを入れるために結局インストールすることになりました。
(準備2)JDK
JDKはこちらのサイトからダウンロードしました。https://www.oracle.com/java/technologies/javase-downloads.html
※この記事でやっていることだけであれば、最新版でもよいのですが、動かないtoolとかもあるのでJDK8のほうが良いかもしれません。
JDK8はoracleのサイトでアカウントを登録しないとダウンロードできないので、ちょっと手間でした。
(準備3)環境変数JAVA_HOMEの設定
システム環境変数にJAVA_HOMEを設定し、JDKのパスを設定する。「C:\Program Files\Java\jdk1.8.0_251」を設定しました。
※システムのプロパティ - 詳細設定 - 環境変数
環境変数のダイアログのシステム環境変数(下の方)の新規ボタンを押す。
変数名 : JAVA_HOME
変数値 : C:\Program Files\Java\jdk1.8.0_251
を設定して、OKで閉じる。 変数値のほうは環境に応じて変更してください。
%JAVA_HOME%\bin
(準備4)環境変数PATHの設定
システム環境変数のPathに、JDKのbinパスを追加する。%JAVA_HOME%\bin
※システムのプロパティ - 詳細設定 - 環境変数
環境変数のダイアログのシステム環境変数で、Pathを選択して、編集ボタンを押し、
環境変数名の編集ダイアログで新規ボタンを押す。
%JAVA_HOME%\bin を追加する。
(準備5)Android Studio のインストール
もともといれてあったので、新しくインストールはしませんでした。入っていたバージョンは3.6.3です。
(準備6)Android SDK toolsのインストール
Android Studio - Tools - SDK Manager - SDK toolsシートHide Obsolete Packagesのチェックを外す
Android SDK Tools が表示されるので、チェックしてapplyボタンを押下
(準備7)環境変数ANDROID_HOMEの設定
システム環境変数にANDROID_HOMEを設定し、android SDKのパスを設定する。sdkのパスはAndroid Studioを起動して、Toolsメニュー - SDKマネージャー を開いて、 Android SDK Locationから確認しました。
※ついでにシステム環境変数のPathに%ANDROID_HOME%\platform-toolsを追加しておくと、のちのち便利です。
(ドライバインストール)
下記のコマンドをコマンドプロンプトで実行npm install appium-uiautomator2-driver
(appium-doctorでチェック)
コマンドプロンプトで「npm install -g appium-doctor」を実行し、appium-doctorをインストール「appium-doctor --android」を実行し、状況をチェック
ここまでで必須のものがOKとなっていることを確認できました。
デモアプリでHello World!
1.デモアプリの準備
公式サイトからダウンロードする。「・・・this test Apk・・・」というリンクがあるので、そこからダウンロードしました。
これをwindows上にダウンロードします。
※よくわからず、これをemulatorでダウンロードしたりして、四苦八苦しました。
2.emulatorの起動
Android Studio - Tools - AVD Manager から emulatorを作成して、起動しておく。サンプルに合わせてandroid 8のemulatorを作成しました。
3.サンプルコードの準備
windows上の任意の場所にindex.jsファイルを作成します。テキストに公式サイトのサンプルをそのまま貼り付けます。
app: のところを、デモアプリをダウンロードしたパスに書き換えます。
// javascript const wdio = require("webdriverio"); const assert = require("assert"); const opts = { path: '/wd/hub', port: 4723, capabilities: { platformName: "Android", platformVersion: "8", deviceName: "Android Emulator", app: "C:/XXXXXXXXXXXX/ApiDemos-debug.apk", // ←ここだけ書き換える。 appPackage: "io.appium.android.apis", appActivity: ".view.TextFields", automationName: "UiAutomator2" } }; async function main () { const client = await wdio.remote(opts); const field = await client.$("android.widget.EditText"); await field.setValue("Hello World!"); const value = await field.getText(); assert.equal(value,"Hello World!"); await client.deleteSession(); } main();※内容はまだ理解していないです。
4.appium起動
スタートメニュー → Appiumをクリック特に設定等変更せずに、「サーバーVXXXXXを起動する」 ボタンを押す。
5.実行
コマンドプロンプトを開くindex.jsがおいてあるパスにcdコマンドで移動する。
「npm init -y」コマンドを実行
「npm install webdriverio」コマンドを実行
「node index.js」コマンドを実行
※npm XXXは一回やればいいのかなぁ
6.結果
emulator側でHello World!が表示されたら、成功。できた。