テストの作成(Python)

Appium Python Clientは、Pythonで記述された公式のAppiumクライアントであり、Appium-Python-Clientというパッケージ名でpypi経由で入手できます。これはSelenium Python Bindingを継承しているため、Appium Python ClientをインストールするとSelenium Bindingも含まれます。

pip install Appium-Python-Client

この例では、Pythonの組み込みのunittestモジュールを使用していますが、任意のPythonテストフレームワークを使用できます。Appium Pythonクライアントは、appium:ベンダープレフィックスを自動的に追加します。通常、プレフィックスについて気にする必要はありません。

test.py
import unittest
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy

capabilities = dict(
    platformName='Android',
    automationName='uiautomator2',
    deviceName='Android',
    appPackage='com.android.settings',
    appActivity='.Settings',
    language='en',
    locale='US'
)

appium_server_url = 'http://localhost:4723'

class TestAppium(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Remote(appium_server_url, options=UiAutomator2Options().load_capabilities(capabilities))

    def tearDown(self) -> None:
        if self.driver:
            self.driver.quit()

    def test_find_battery(self) -> None:
        el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Battery"]')
        el.click()

if __name__ == '__main__':
    unittest.main()

注意

Pythonクライアントライブラリやここで起きていることすべてについて、完全な説明を提供することはこのガイドの範囲内ではないため、今のところコード自体の詳細な説明は省略します。

  • 特にAppiumの機能について読んでおくと良いでしょう。
  • PythonクライアントのGitHubリポジトリにある機能テストコードは、より多くの動作例を見つけるのに役立ちます。
  • ドキュメントも、Appium Pythonクライアントで定義されているメソッドを見つけるのに役立ちます。

注意

サンプルコードはGitHub Appiumリポジトリから入手できます。

基本的に、このコードは次のことを行っています。

  1. Appiumサーバーに送信する一連の「機能」(パラメーター)を定義して、Appiumが自動化したいものが何であるかを把握できるようにします。
  2. 組み込みのAndroid設定アプリでAppiumセッションを開始します。
  3. 「バッテリー」リストアイテムを見つけてクリックします。
  4. 視覚的な効果のためだけに、少しの間一時停止します。
  5. Appiumセッションを終了します。

以上です!試してみましょう。テストを実行する前に、別のターミナルセッションでAppiumサーバーが実行されていることを確認してください。そうしないと、サーバーに接続できないというエラーが発生します。次に、スクリプトを実行できます。

python test.py

すべてがうまくいけば、設定アプリが開いて「バッテリー」ビューに移動した後、アプリが再び閉じるのを確認できます。

おめでとうございます。Appiumの旅を始めました!次のステップに進んで探索してください。