この記事では、AppiumとPythonを使用した自動テスト環境をWindows上でゼロから構築する手順を、丁寧に解説します。必要なツールのインストールから設定、基本的なテストケースの実行まで、初心者でも迷わない内容を想定しております。
必要なツールとバージョン
以下は今回の環境構築に使用するツールとバージョンです。バージョンが異なる場合でも大きな影響はありませんが、できる限り最新版を使用することを推奨します。
構築日: 2024年9月2日
● 対象OS:Windows 10
● Node.js: 20.15.1
● npm: 10.8.2
● Java: 11.0.24
● Python: 3.11.1
● Android Studio: Koala | 2024.1.1 Patch 1
ステップ1:Node.js と npm のインストールと確認
1.1:インストール
A. 以下のNode.js公式サイトへ遷移し、ダウンロードしたいバージョンを指定する
Node.js — Download Node.js
○ Current:最新版だが、動作が不安定になる場合がある
○ LTS:動作安定版。明確な目的が無い場合はこちらを選択する
B. Windows用インストーラーをダウンロードする
C. ダウンロードしたmsiファイルを実行し、インストールを完了する
※Node.jsインストールと同時に、npmもダウンロードされます。
1.2:バージョン確認
A. Powershellで以下を実行します。
node -v
npm -v
バージョンが表示されない場合、以下のNode.js公式サイトからインストールしてください。
Node.js — Run JavaScript Everywhere
ステップ2:Java のインストールと確認
2.1:インストール
A. 以下のJava公式サイトからJREまたはJDKをダウンロードしてインストールします。
すべてのオペレーティング・システム用のJavaダウンロード
2.2:バージョン確認
A. Powershellで以下を実行します。
java -version
表示されない場合、コントロールパネルから既存のJava関連のプログラムをアンインストールし、再インストールしてください。
ステップ3:Android Studio のインストール
3.1:インストール
A. 以下のAndroid Studio公式サイトからインストールします。
Android Studio とアプリツールのダウンロード – Android デベロッパー | Android Developers
3.2:SDK Managerの設定
A. Android Studioを起動し、More Actions > SDK Manager を開きます。
B. Android SDK Location に以下を指定します。
○ C:/Users/{ユーザー名}/AppData/Local/Android/Sdk
C. SDK Platformで使用するAndroid OSにチェックを入れ、Apply をクリックします。
3.3:仮想デバイスの作成
A. More Actions > Virtual Device Manager からデバイスを作成します。
B. デフォルト設定(Pixel、最新のAndroid OS)で構築するか、必要に応じてカスタマイズします。
ステップ4:環境変数の設定
4.1:ユーザー環境変数
A. システムのプロパティ > 詳細設定 > 環境変数へ移動します。
B. ユーザー環境変数を追加
ユーザー環境変数に以下の環境変数を追加します。
ANDROID_HOME=C:/Users/{ユーザー名}/AppData/Local/Android/Sdk
JAVA_HOME=C:/Program Files/Java/{インストールしたJDKのフォルダ名}
C. システム環境変数を追加
Pathに以下を追加します
%JAVA_HOME%/bin
%ANDROID_HOME%/platform-tools
%ANDROID_HOME%/emulator
D. 環境変数の反映確認
管理者権限でPowershellを起動し、以下を実行して設定を確認します。
echo %JAVA_HOME%
echo %ANDROID_HOME%
adb --version
ステップ5:Python のインストール(任意)
5.1:インストール
以下のPython公式サイトからインストールします。
Windows版Pythonのインストール: Python環境構築ガイド – python.jp
5.2:バージョン確認
A. Powershellで以下を実行します。
python -V
ステップ6:Appium のインストールと確認
6.1:インストール
B. Powershellで以下を実行します。
npm install appium --save-dev
6.2:バージョン確認
A. Powershellで以下を実行します。
npx appium -v
6.3:ドライバーのインストール
A. ドライバーのインストール 必要なドライバーを以下のコマンドでインストールします。
Android用
npx appium driver install uiautomator2
iOS用
npx appium driver install xcuitest
Chrome用
npx appium driver install chromedriver
ステップ7:Appium Doctor の実行
Appium環境を確認するためのツールを使用します。以下、Powershellでコマンドを実行します。
7.1:インストール
A. Powershellで以下を実行します。
npm install appium-doctor
7.2:Appium Doctorを実行
A. Powershellで以下を実行します。
npx appium-doctor --android
注意:toolsに関する警告は無視して問題ありません。それ以外のエラーが表示された場合は該当箇所を修正してください。
ステップ8:テストケースの実行
8.1:サンプルテストコード
以下はPythonで作成したサンプルコードです。appiumライブラリを使用してAndroidデバイス上で設定アプリの「Battery」項目をタップする動作をテストします。
import unittest
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy
# Capabilities設定
# サンプルコードから改変しておりますが、仕様変更に伴うものです
options = UiAutomator2Options()
options.platform_name = 'Android'
options.automation_name = 'UiAutomator2'
options.device_name = 'emulator-5554'
options.app_package = 'com.android.settings'
options.app_activity = '.Settings'
appium_server_url = 'http://localhost:4723'
class TestAppium(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Remote(appium_server_url, options=options)
def tearDown(self):
if self.driver:
self.driver.quit()
def test_find_battery(self):
element = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Battery"]')
element.click()
if __name__ == '__main__':
unittest.main()
8.2:実行手順
A. Powershellでappiumを起動します。
appium または npx appium
B. Android Studioでエミュレーターを起動するか、実機をUSBで接続します。
C. Powershellで、Pythonファイルを以下のコマンドで実行します。
python -u {pythonファイルのフルパス} または pytest {pythonファイルのフルパス}
これでPython + Appium環境の構築は完了です!複雑なテストケースにも対応して、テスト自動化を進めていきましょう。
トラブルシューティング
● Appiumサーバーが拒否される場合
以下の記事を参考に対処してください。
PowerShell のスクリプトが実行できない場合の対処方法 #Windows – Qiita
● タイムアウトエラーが発生する場合
ブラウザを閉じる、Appiumサーバーの再起動、エラーログの確認を試してください。
所感
サンプルコードをただ動かすだけの技術紹介でしたが、相当な準備と苦労が伴いました。上記のような手順を再現できるまでにたくさんの失敗・エラーを体験しましたので、本記事が、スムーズな導入の一助となれば幸いです。ここまで読んでいただきありがとうございました!
参考資料
● Appium公式ドキュメント
● Android Studio公式サイト
● Appium Inspectorの導入方法
<過去の記事>
Amazon AWS Lambda(Pythonと関数URL)で簡単な静的Webサイトを作ってみた
「生成AIで自動化」だけでテストは十分?自動・手動の最適バランス
自動化だけがすべてじゃない?!テストプロセス効率化の最適解