Appium 初心者向けチュートリアル

⚡ スマートサマリー

Appium チュートリアル Android iOSモバイルアプリテストでは、両プラットフォームのネイティブアプリ、ハイブリッドアプリ、Webアプリを単一のツールで駆動するオープンソースのUI自動化フレームワークが導入されています。 Selenium-互換性のあるAPI。このガイドでは、その方法を説明します。 Appium 動作、インストール手順、インスペクター、エミュレーターのアタッチメント、および Java 電卓のテストケース。

  • ???? コア定義: Appium は、ネイティブ、ハイブリッド、Web アプリをサポートするオープンソースのモバイル UI 自動化フレームワークです。 Android iOSとiOSは、1つのAPIを介して連携します。
  • 🔌 HTTPサーバーモデル: Appium Node.js HTTPサーバーとして動作し、WebDriverのJSONワイヤコマンドをプラットフォーム固有の自動化呼び出しに変換します。
  • 🧰 ツールスタック: 必須の前提条件は以下のとおりです。 Android SDK、JDK、 Eclipse, TestNG, Selenium サーバーJAR、 Appium クライアントライブラリ、そして Appium デスクトップ。
  • 🔍 検査官兼記録官: Appium インスペクターは要素階層を検査し、定型スクリプトを生成しますが、UIAutomator Viewerは Windows 後退する。
  • Java テストワークフロー: DesiredCapabilities、RemoteWebDriver、および TestNG ネイティブを起動および検証するための注釈 Android 電卓などのアプリ。

Appium チュートリアル Android iOSモバイルアプリのテスト

何ですか Appium?

Appium は、自由に配布されるオープンソースのモバイルアプリケーションUIです。 テスト フレームワーク。 Appium ネイティブ、ハイブリッド、Webアプリケーションのテストを可能にし、実機だけでなくエミュレータやシミュレータ上での自動化もサポートします。クロスプラットフォームアプリケーションテストを提供し、単一のAPIで両方のプラットフォームに対応します。 Android およびiOSテストスクリプト。

Appium 持っています いいえ モバイルデバイスのOSに依存します。フレームワークは、 Selenium WebDriver コマンドを UIAutomation (iOS) または UIAutomator (Androidデバイスの種類に応じてコマンドが切り替わり、基盤となるオペレーティングシステムのバージョンには依存しません。

Appium すべての言語をサポートしています Selenium クライアントライブラリ — Java、Objective-C、 Javaスクリプト Node.js、PHP、Ruby、 Python, C#、 もっと。

どのように Appium 作業?

  • Appium HTTPサーバーは、 Node.js iOS を推進するプラットフォームと Android WebDriver JSONワイヤプロトコルを使用したセッション。開始する前に、システムにNode.jsが事前にインストールされている必要があります。 Appium サーバー。
  •    Appium ダウンロードしてインストールすると、ローカルマシン上にREST APIを公開するサーバーがセットアップされます。
  • サーバーはクライアントからの接続要求とコマンド要求を受け付け、モバイルデバイス上でコマンドを実行します(Android またはiOS)。
  • HTTPレスポンスで応答します。リクエストを実行するには、 Appium ネイティブのモバイル自動化フレームワークを呼び出して、アプリケーションのUIを制御します。
    • iOS 用 Apple Instruments (インストゥルメントは、 Xcode OS X v10.5以降を搭載したバージョン3.0以降)。
    • Google UIAutomator 用 Android APIレベル16以上。
    • Selendroid の Android APIレベル15以下。

使用するための前提条件 Appium

  1. インストールを開始する Android SDK (スタジオ)[リンク].
  2. インストールを開始する JDK (Java 開発キット) [リンク].
  3. インストールを開始する Eclipse [リンク].
  4. インストールを開始する TestNG の Eclipse [リンク].
  5. インストールを開始する Selenium サーバーJAR [リンク].
  6. Appium クライアントライブラリ [リンク].
  7. APKアプリ情報 on Google 遊ぶ [リンク].
  8. Node.js (厳密には必須ではないが、 Appium サーバーがインストールされ、Node.exeとNPMが最新バージョンにバンドルされています。 Appium バージョン)。
  9. インストールを開始する Appium デスクトップ.

インストールを開始する Appium デスクトップ

Appium Desktop は、インストールして実行するオープンソースの GUI アプリケーションです。 Appium サーバー。使用に必要なすべての前提条件がバンドルされています。 Appium サーバーとして動作し、アプリに関する基本情報を表示するインスペクターと、モバイルアプリケーションを自動化する定型コードを生成するレコーダーが付属しています。

ステップ1) に行く http://appium.io/ ダウンロードをクリックしてください Appium.

Appium 公式サイトのダウンロードページ

ステップ2) 『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する Windows.exeファイルを選択してダウンロードしてください。ファイルサイズは約162MBで、ダウンロードにはインターネット接続速度に応じて時間がかかります。

選択する Windows Appium デスクトップインストーラー

ステップ3) ダウンロードした.exeファイルをクリックしてください。

ラン Appium デスクトップインストーラー実行ファイル

ステップ4) 上の Windows マシンにはインストールウィザードはありません。 Appium .exeファイルから直接実行されます。.exeファイルをクリックすると、数分間、以下のスプラッシュ画面が表示されます。

Appium デスクトップの読み込みアニメーション

『Brooklyn Galaxy』のために、倪氏はブルックリン美術館のコレクションからXNUMX点の名品を選び、そのイメージを極めて詳細に描き込みました。これらの作品は、彼の作品とともに中国ギャラリーに展示されています。彼はXNUMX年にこの作品の制作を開始しましたが、最初の硬貨には、当館が所蔵する macOS.dmg ファイルをインストールする必要があります。

ステップ5) サーバー起動ウィンドウが開きます。デフォルトのホストとポート(変更可能)が入力され、 Appium 使用中のバージョン。

Appium サーバー起動ウィンドウ(ホスト名とポート番号表示)

ステップ6) 詳しくはこちら サーバーを起動指定されたホストとポートで新しいサーバーが起動され、サーバーログの出力がコンソールに表示されます。

Appium サーバー起動後のログ出力

ステップ7) 詳しくはこちら New Session Window を選択します。.

新しいセッションウィンドウを開く Appium デスクトップ

ステップ8) 必要な機能を入力してセッションを開始してください。

希望する機能を入力して開始します Appium セッション

Appium 検査官

に似て Selenium IDEの記録および再生ツール、 Appium 〜を持つ 検査官 テストの記録と再生用です。DOM を検査してネイティブアプリケーションの動作を記録および再生し、サポートされている任意の言語でテストスクリプトを生成します。 Appium インスペクターはサポートされていません Microsoft Windows: オン Windows それは Appium サーバーは要素の検査に失敗します。UIAutomator Viewer は、要素を検査するための推奨フォールバックです。 Windows.

開始するための手順 Appium Mac マシン上の Inspector:

ステップ1) ダウンロードして開始してください Appium サーバーはデフォルトのIPアドレス0.0.0.0とポート4725を使用します。

  1. テストに使用するソースファイルまたは.appファイルをローカルドライブから選択してください。
  2. 「アプリパス」チェックボックスをオンにすると、「選択」ボタンが有効になります。

ステップ2) 「選択」ボタンをクリックして、ローカルドライブからテストファイルを参照して選択してください。

Appium Macでのインスペクターアプリのパス選択

ステップ3) Mac上でiOSシミュレーターを起動します。

ステップ4) クリック 起動する 右上隅のボタン。これにより青いアイコンが有効になります。そのアイコンをクリックして開きます。 Appium 検査官と、事前に選択されたアプリケーションを備えたシミュレーター。

起動する Appium iOSシミュレーター搭載の検査官

ステップ5) 起動すると、 Appium インスペクターは、要素の階層構造を列ごとに表示します。ユーザーは、タップ、スワイプなどの操作を行うこともできます。

Appium インスペクター要素階層ビュー

ステップ6) 詳しくはこちら Force Stop 録音を終了するには。

添付 Android エミュレータへ Appium

ステップ1) インストールを開始する Android お使いのシステムにSDKをインストールしてください。

コントロール パネル > システムとセキュリティ > システムを開きます。左側のパネルから、 システムの詳細設定システムプロパティのポップアップで、 高機能 タブをクリックして 環境変数.

環境変数を開く Windows

ステップ2) 環境変数ポップアップからダブルクリック パス 設定して ANDROID_HOME SDKディレクトリを指す変数を指定します。SDKフォルダの完全なパスを追加してください。例:

C:\User\ABC\Desktop\adt-bundled-windows-x86_64-20140321\sdk

環境変数にANDROID_HOMEを設定してください。

ステップ3) 開始します Android エミュレーター、または Android デバイスをシステムに接続します。USBデバッグが有効になっていることを確認してください。 Android デバイス:デバイス設定 > 開発者向けオプション > 「USBデバッグ」を有効にする。

ステップ4) コマンドプロンプトを開き、 Android SDKの \platform-tools\ ディレクトリ(例: D:\adt-bundle-windows-x86_64-20130514\sdk\platform-tools).

ステップ5) 実行する adb devices このコマンドを実行すると、接続されているデバイスがコマンドプロンプトウィンドウに表示されます。完全な形式は次のとおりです。 adb -s emulator-5554 install <Location of .apk file>.

adb devices コマンドの出力で、接続されているエミュレーターが表示されている。

ステップ6) 実行する adb start-server コマンド。ADBサーバーが起動し、 Appium それを使ってコマンドを送信します Android デバイス。

ステップ7) に移動します Appium システムのディレクトリに移動して開始します Appium をクリックすると Appium.exeファイル。

ステップ8) デフォルトのIPアドレスやポート番号は変更しないでください。 起動する。 あなたの Appium コンソールは、以下に示すように127.0.0.1:4723で起動します。

Appium コンソールは127.0.0.1:4723で実行されています

ステップ9) 詳しくはこちら お気軽にご連絡くださいを選択します。 Appium サーバーがシステム上で稼働しました。

Appium ネイティブ向けのテストケース Android アプリ(電卓)

ステップ1) ADTをダウンロード Eclipse プラグインまたはADTバンドルを別途入手してください こちら.

ステップ2) 店は開いています Eclipse そして、新しいプロジェクト > パッケージ > クラスを作成します。

ステップ3) インポートする Selenium ライブラリと TestNG 新しいプロジェクトに参画する。

ステップ4) 小さなテストプログラムを作成します 電卓アプリ それは2つの数を足し合わせるものです。

package src_Appium;

import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.*;

public class Calculator {
    WebDriver driver;

    @BeforeClass
    public void setUp() throws MalformedURLException {
        // Set up desired capabilities and pass the Android app activity and package to Appium
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("BROWSER_NAME", "Android");
        capabilities.setCapability("VERSION", "4.4.2");
        capabilities.setCapability("deviceName", "Emulator");
        capabilities.setCapability("platformName", "Android");

        capabilities.setCapability("appPackage", "com.android.calculator2");
        // Package name of the app (get it from an APK info app)
        capabilities.setCapability("appActivity", "com.android.calculator2.Calculator");
        // Launcher activity of the app (get it from an APK info app)

        // Create a RemoteWebDriver instance and connect to the Appium server
        // Launches the Calculator app on the Android device using the capabilities above
        driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
    }

    @Test
    public void testCal() throws Exception {
        // Locate the keys on the calculator by name
        WebElement two = driver.findElement(By.name("2"));
        two.click();
        WebElement plus = driver.findElement(By.name("+"));
        plus.click();
        WebElement four = driver.findElement(By.name("4"));
        four.click();
        WebElement equalTo = driver.findElement(By.name("="));
        equalTo.click();
        // Locate the calculator output by tag name
        WebElement results = driver.findElement(By.tagName("EditText"));
        // Check the calculated value on the edit box
        assert results.getText().equals("6") :
            "Actual value is : " + results.getText() + " did not match with expected value: 6";
    }

    @AfterClass
    public void teardown() {
        // Close the app
        driver.quit();
    }
}

始める Appium サーバーと Android AVD マネージャーからエミュレーターを選択し、[実行] をクリックします。 TestNGプログラムは選択したエミュレータ上で Calculator.app を実行し、結果が Eclipse コンソールを使用して TestNG フレームワーク。

の制限 Appium

  1. Appium テストをサポートしていません Android 4.2 より前のバージョン。
  2. ハイブリッドアプリのテストに対するサポートは限定的です。例えば、Webビューとネイティブビュー間の切り替え動作を双方向でテストすることはできません。
  3. 実行のサポートはありません Appium インスペクターオン Microsoft Windows.

よくあるエラーとトラブルシューティング手順 Appium

エラー トラブルシューティングの手順
エラー: 以下の必要な機能が指定されていません: deviceName、platformName 必要な機能を追加する deviceName (NAIST) と platformName から Appium スクリプト。例: capabilities.setCapability("deviceName", "Emulator"); (NAIST) と capabilities.setCapability("platformName", "Android");
エラー: adbが見つかりませんでした。ANDROID_HOME環境変数を設定してください。 Android SDKのルートディレクトリのパス。 システム環境変数の「パス」項目で、SDKのルートディレクトリを設定してください。
エラー: org.openqa.selenium.SessionNotCreatedException: 新しいセッションを作成できませんでした。 正しいアプリパスを設定して再起動してください Appium サーバー。
DOM要素を見つける方法または XPath モバイルアプリケーションで? UIAutomator Viewerを使用してDOM要素を検査します Android 分野の様々なアプリケーションで使用されています。

よくあるご質問

Selenium ウェブブラウザを自動化する。 Appium モバイルアプリケーションを自動化します。 Appium WebDriverプロトコルを再利用するため Selenium ユーザーはすぐにそれを採用しますが、 Appium また、ネイティブ、ハイブリッド、モバイルウェブアプリも駆動します Android iOSについては、プラットフォーム固有の自動化エンジンを介して対応する。

Appium すべての言語をサポート Selenium WebDriverクライアントを含む Java, Python, JavaNode.js、Ruby、C#、PHP、Objective-C を使用したスクリプト。 Appium 言語変更を強制することなく、多様なエンジニアリングチームに適応可能。

Yes. Appium デバイスにインストールされたネイティブアプリ、Webビューが埋め込まれたハイブリッドアプリ、およびChromeまたはSafari内で実行されるモバイルWebアプリをテストします。単一のWebDriverベースのAPIがこれら3種類のアプリすべてを駆動するため、クロスプラットフォームテストのメンテナンスが簡素化されます。

AIが向上する Appium 自己修復ロケーター、ビジュアル検証、AI生成テストステップなどを活用したスイートを提供します。AIエンジンは、アプリのアップデートに伴うロケーターのずれを検出し、安定したXPathの代替案を推奨し、不安定なテストを自動的に分類することで、エンジニアがメンテナンスではなく実際の欠陥の解決に集中できるようにします。

はい。AIモバイルテストツールはアプリ画面を分析し、インタラクティブな要素を識別し、 Appium 必要な機能とロケーターを備えたスクリプトを作成します。テスターはスクリプトをレビューして改良し、定型文を減らし、新しいチームのオンボーディングを加速します。 Appium オートメーション。