AppiumでAndroidアプリを自動テストする用の環境作成

4 min read読了の目安(約3700字

注※Qiitaからの転載です(もちろん書いた本人です)

はじめに

まとまっているところがなかったので作成しました。
自分用備忘録兼ねてます。

使用技術

macでの開発を想定しています。
zsh使用してるので、bashの方は適宜読み替えてください。

Main(必須)

  • Xcode
  • Homebrew:性質的にはsubだけどないと始まらないのでmainに入れてます
  • Ruby
  • Node.js
  • Java
  • Android Studio
  • Appium
  • WebdriverIO

js fremework

  • mocha + chai

Sub

  • enyenv:env系管理
  • rbenv:ruby管理
  • nodenv:node管理
  • jenv:java管理

環境作成

-- First Step --

001 Xcode install

AppStoreから。App版のテストで必要なのと、Homebrew入れるのにどうせ必要なので入ってない方はこの瞬間入れてください。結構時間かかります。
入れ終えたら一度起動してXcode Command Line Toolsをinstallしておきます。

002 Homebrew install

最新のスクリプトを

https://brew.sh/index_ja
からコピーしてください。
下記は2019.11.11時点のもの。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

ターミナルで実行。
出てきた文言に従いましょう。

-- Second Step --

各言語のversion固定で変更しないとかだと要らないStep。
アップデート追従がとても大変なので入れておいたほうがいいでしょう。
ここを飛ばす場合は、

  • ruby 2.5.0
  • node 12.10.0
  • java 1.8.0

を適宜入れてください。

003 anyenv install

$ brew install anyenv
$ anyenv install --init
$ echo 'eval "$(anyenv init -)"' >> ~/.zshrc
$ anyenv init

004 rbenv install

$ anyenv install rbenv
$ (exec $SHELL -l)
$ rbenv install -v 2.5.0
$ gem install bundler

005 nodenv install

$ anyenv install nodenv
$ (exec $SHELL -l)
$ nodenv install -v 12.10.0

006 jenv install

AppiumにはJava8が必要です。
コマンドでJavaをインストールするなら以下のコマンドになります。
ライセンスの絡みがあるので詳しくは調べてください。

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

※Javaは色々プロジェクトあるみたいなんですけどどっちがどうとかはわからないです。。。

ライセンス的にjenv経由ではインストールができません。インストールされているJavaの管理のみになります。

$ anyenv install jenv
$ (exec $SHELL -l)
$ jenv add $(/usr/libexec/java_home -v 1.8)

-- Third Step --

007 Android Studio install

$ brew cask install android-studio

install後、起動して適当なプロジェクト作成してSDKとgradleを入れておきます。

008 Add PATH

.zshrcに追加します。
ANDROID_HOMEは各機の環境に差し替えてください。

# ANDROID_HOMEの設定
export ANDROID_HOME=/Users/User名/Library/Android/sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

# JAVA_HOMEの設定
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=${PATH}:$JAVA_HOME/bin

### etc...
PATH=$PATH:/usr/sbin

009 Appium install

AppiumとAppiumのチェック用のappium-doctorをglobalにinstallします。

npm install -g appium appium-doctor

010 Add etc...

Appiumで必要なもの色々。
cmakeが初期では入ってないので入れてます。

brew install cmake

globalに各種入れていきます。
opencv4nodejsはインストールに時間がかかります。
※画像処理に関する様々なアルゴリズムが簡単に使えるオープンソースライブラリ

npm i -g opencv4nodejs

※動画や音声を加工するツール

brew install ffmpeg

※動画圧縮の形式

npm i -g mjpeg-consumer

wgetが初期ではないので追加します。

brew install wget

※Androidアプリバンドルを操作するためのツール

$ mkdir ~/bin/
$ cd ~/bin/
$ wget https://github.com/google/bundletool/releases/download/0.10.3/bundletool-all-0.10.3.jar
$ ln -s bundletool-all-0.10.3.jar bundletool.jar
$ chmod a+x bundletool-all-0.10.3.jar

PATH追加

# bundletoolの設定
export PATH="$PATH:$HOME/bin/"

011 check appium-doctor

appium-doctor --android

オールグリーン「Everything looks good, bye!」が出たらOK。
出なかったときは頑張って

-- Fourth Step --

このstepはなくても動きます。

012 download standalone appium

http://appium.io/
公式よりスタンドアロン型のAppiumも落としてきます。
なにかと便利なので。

Edit CongigurationsよりANDROID_HOMEとJAVA_HOMEの設定をお忘れなく。
スタンドアロンは自身の設定を見ます。

-- Fifth Step --

テストプロジェクトの作成をします。
前提として

  • 実機テスト
  • テスト対象アプリは実機にインストール済み
  • 実機は開発者モード + USBデバッグON

とします。

013 create project folder

好きな場所に作ったあとcdでそのフォルダに入ってください。
以下例。

mkdir /projects/test-sample/
cd /projects/test-sample/

014 webdriverio install

$ npm init
$ npm install --save-dev webdriverio
$ npm install @wdio/cli

015 create config

$ npx wdio config

環境作成おわり。

おわりに

気力が湧いてきたらプロジェクト設定やらテストやらも書きます。
つかれたよー。