Appiumによる自動テスト環境構築

1. Appiumの公式リソース

  • Appium公式ドキュメント
  • Appium GitHubリポジトリ
  • Appium InspectorのGitHubページ

2. インストールと開発環境構築

2.1 Appiumサーバーの準備

Appium Desktopを使用すればインストールが簡単に行えるが、v1.22以降でセキュリティ上の問題が見つかり、保守が停止しているため、個別にAppiumサーバーをセットアップする。

2.1.1 Node.jsのインストール

AppiumサーバーはNode.jsベースのため、まずNode.jsをインストールする。

  • 公式サイトからインストーラーをダウンロードしてインストール
  • バージョン確認コマンド:
    • node -v
    • npm -v
  • npmのレジストリ変更コマンド:
    • npm config set registry <ミラーURL>
    • 現在の設定を確認:npm config get registry

2.1.2 Appiumと診断ツールのインストール

グローバルインストールコマンド:

  • npm install -g appium(Linux/macOSで権限問題がある場合はsudoを使う)
  • npm install -g appium-doctor

診断実行:appium-doctor(一部の警告は無視しても問題ない)

2.1.3 ドライバのインストール

Appium 2.0以降はドライバが個別管理されているため、必要に応じてインストールを行う。

  • 利用可能なドライバ一覧:appium driver list
  • Android向けドライバのインストール:appium driver install uiautomator2

2.2 Android SDKとデバイス接続

Android端末でのテストを行うためにはAndroid SDKと端末の認識が必要。

  • Android SDKのインストール手順はOSに応じて参照(別記事)
  • ノックスミューレーター使用の場合:
    • 接続コマンド:adb connect 127.0.0.1:62001
    • 認識確認:adb devices
  • 実機使用時は開発者オプションを有効にする

2.3 動作確認コード

以下のコードでAppiumの動作を確認する。

import time
from appium import webdriver
from appium.options.common.base import AppiumOptions

設定オプション = {
    "platformName": "Android",
    "automationName": "uiautomator2",
    "deviceName": "Android",
    "appPackage": "com.android.settings",
    "appActivity": ".Settings"
}

driver = webdriver.Remote('http://localhost:4723', options=AppiumOptions().load_capabilities(設定オプション))
print("設定アプリを起動")
time.sleep(5)
driver.quit()

実行手順:

  • Appiumサーバー起動:appium
  • 端末接続確認:adb devices
  • Pythonでスクリプトを実行し、設定アプリの起動・終了が確認できれば成功

2.4 Appium Inspectorの利用

UI要素の解析や録画、要素の特定に役立つツール。

  • 公式サイトからインストーラーをダウンロード
  • 起動後にDesired Capabilitiesを設定:
    • platformName:端末のOS(Android/iOS)
    • appium:automationName:使用するドライバ名(例:uiautomator2)
    • appium:deviceName:任意のデバイス名
    • appium:appPackage:対象アプリのパッケージ名
    • appium:appActivity:対象アクティビティ名
  • パッケージ名・アクティビティ名の取得方法:
    • adb logcat ActivityManager:I | grep "cmp"でログを取得

3. Capabilitiesの基本構造

CapabilitiesはAppiumの各ドライバを設定するためのパラメータで、JSON形式で指定する。

必須パラメータ:

  • platformName:端末のOS
  • appium:automationName:使用するドライバ

名前空間付きのパラメータは以下のようにまとめて記述できる:

capabilities = {
    "platformName": "Android",
    "appium:options": {
        "automationName": "UiAutomator2",
        "noReset": true
    }
}

タグ: appium Android SDK uiautomator2 Test Automation ADB

6月12日 00:21 投稿