ローソンデジタルイノベーション テックブログ

ローソンデジタルイノベーション(LDI)の技術ブログです

Appium1.xからAppium 2.0に移行してみた

ども。LDI品質管理部の仙波です。
スマホアプリの自動テストを担当しています。

通常業務が忙しくてしばらくブログ執筆から遠ざかっていましたが、心機一転また情報発信していきたいと思います。

さて、2021年の春頃に、Appium 2.0がもうすぐリリースされるという予告がありましたが、 2022年2月1日現在、まだ正式なリリースは行われていません。 ベータ版は利用できるので、時間ができたら検証してどこかのタイミングで移行しようと思っていたのですが、 いざやってみると全然難しくなかったので、メモしておきます。

Appium 1.xの問題

Appium 1.xではインストーラーをダウンロードしてインストールすると、 Appium Serverや、プラットフォームごとのドライバーソフトウェアを含む一式がすべてインストールされましたが、 このようなモノリシックな構造では含まれるソフトウェアのリリースタイミングをすべて同期する必要があり、Appiumの開発者にとってはこれを調整するのが大変だったようです。

この問題を解決すべく、Appium 2.0ではAppium Serverやドライバーソフトウェアのインストールが独立しており、 ユーザーが必要なものを選択してインストールするようにインストール方法が変更されています。

筆者の環境

LDIではAndroidとiOSのアプリのテストの一部をAppium 1.xを使用して自動化しています。 テストコードの開発環境は

  • MacBook Pro/Intel (OS: Big Sur)
  • IntelliJ IDEA
  • Kotlin

です。

準備

  • Appium 1.xをアンインストールしておきます。
  • npmを使用するので、nodeをインストールしておきます。


インストール

Appium Server

npmでインストールできます。2.0はまだベータ版なので@next を指定します。

npm install -g appium@next
appium -v


UIAutomator

Android用のドライバーソフトウェアであるUIAutomatorは npmではなく、appiumコマンドでインストールします。

appium driver install uiautomator2


XCUITest

同様に、iOS用のXCUITestも appiumコマンドでインストールします。

appium driver install xcuitest


Appium Inspector

Appium Inspectorも分離されたので、入手してインストールします。

github.com


インストールは以上です。 インストールパッケージが分割されたので、その分インストールの手順は増えてますが、数コマンドたたくだけなので特に面倒には感じませんでした。

テストコードの実行

Appium 1.xで作成したテストコードを実行してみました。

2.0にアップデートしたときにテストコードが動作しなくなることを心配していましたが、 弊社の場合は特に問題なく実行できました。 Appiumの機能のうち基本的なものしか使用していないので、そのせいで不具合に遭遇していないのかもしれませんが、 問題なかったので、そのまま2.0に移行しました。

ちなみに、上記の検証はIntel Macで行いました。

M1 Macでも同様に検証したところ、こちらはiOS Simulatorの挙動がおかしい問題に遭遇し、一部のテストシナリオが正常動作せずに困っていますが、たぶんAppium 2.0の問題ではありません。

おわりに

  • Appium 2.0を導入してみました
  • 導入手順は全然難しくありませんでした
  • M1 MacのiOSシミュレーターは一部挙動がおかしいです(たぶんAppium 2.0と関係ないです)

Appium 2.0はプラグイン構造になっていて、さまざまな機能を追加インストールできるようになるので、今後便利なプラグインが出たら使ってみたいと思います。