モバイルアプリケーションテスト用のAppiumアーキテクチャ

公開: 2020-06-26

目次

Appiumの概要

Appiumは、iOSおよびAndroidモバイルアプリケーションの自動化を提供する無料のモバイルアプリケーションテストツール/フレームワークです。 Appiumは、Java、Python、Ruby、JavaScriptなどで記述されたテストコードを受け入れるクライアントサーバーアーキテクチャです。

本質的に、AppiumはNode.jsプログラミング言語で記述されたWebサーバーであり、JSONワイヤープロトコルを使用してiOSおよびAndroidセッションを作成します。

Appiumサーバーは次のアクションを実行します

  • HTTP経由でJSONオブジェクトの形式でクライアントから接続を受信します
  • セッションを開始してから、セッションIDを返します
  • 発行されたコマンドをリッスンします
  • モバイルデバイスでこれらのコマンドを実行します
  • HTTP応答で応答します

ソース

Appiumの重要な概念

Appiumアーキテクチャを深く掘り下げる前に、まずAppiumアーキテクチャに関連する重要な概念を理解しましょう

Appiumクライアント

Appiumクライアントは、使い慣れた任意の言語(PHP、 Java 、Phytonなど)で記述された自動スクリプトコードです。 Appiumクライアントは、テストケースを実行するためのロジック/コードとともに、モバイルデバイスとアプリケーションの構成の詳細を保持します。

Appiumサーバー

AppiumサーバーはNode.jsプログラミング言語で記述されたHTTPサーバーであり、AppiumクライアントからJSON形式で接続およびコマンド要求を受信し、モバイルデバイスでそれらのコマンドを実行します。 自動化コードを呼び出す前に、AppiumServerが起動されます。

サーバーはiOSおよびAndroidプラットフォームと対話し、モバイルアプリケーションのエンドデバイスと対話するためのセッションを作成します。

読む:初心者向けのトップ20のトレンドAndroidプロジェクトのアイデアとトピック

エンドデバイス

エンドデバイスは、ほとんどがリアルタイムのモバイルデバイスまたはエミュレーターです。 自動スクリプトは、クライアントのコマンドによってAppiumサーバーによってエンドデバイスで実行されます。

JSONワイヤープロトコル

Appiumアーキテクチャでは、JSONワイヤープロトコルは、AppiumクライアントとAppiumサーバー間の通信を確立するために使用されるトランスポートメカニズムです。 このプロトコルは、セッション中のさまざまなモバイルデバイスの動作を制御します。 これは、RESTfulAPIを介して公開される事前定義されたエンドポイントのセットです。 たとえば、クライアントがサーバーにデータを送信したい場合、クライアントはそれをJSONオブジェクトに変換し、サーバーにプッシュします。 次に、サーバーは受信したJSONオブジェクトを解析し、使用するためにデータに変換し直します。

Appiumアーキテクチャ

ここで、 Appiumアーキテクチャについて理解しましょう

前述のように、AppiumサーバーはHTTPサーバーであり、クライアントライブラリからJSON形式でHTTPリクエストを読み取り、これらのリクエストを適切なプラットフォームに送信します。 Appiumサーバーはこれらの要求を認識し、対応するエンドデバイスとの自動化セッションを作成します。 セッションが作成されると、Appiumサーバーはエンドデバイスでテストケースの実行を開始します。

Appiumサーバーは、実行しているプラ​​ットフォームに応じて、iOSとAndroidで異なる方法でリクエストを処理します。 次のセクションでは、Appiumがこれらのプラットフォームでコマンドを異なる方法で実行する方法について説明します。

iOSデバイスで動作するAppium

iOSデバイスでは、AppiumはUIAutomation API(Apple Companyが提供するJavaScriptライブラリ)を使用して、アプリケーションのユーザーインターフェイス要素に接続します。

上記のAppiumiOSアーキテクチャの図は、 iOS自動化のためのAppiumアーキテクチャを示しています。 iOSAppiumアーキテクチャの図を段階的にデコードしてみましょう

  • Appiumクライアントは、JSONワイヤープロトコルを使用してAppiumサーバーと通信し、コマンドをJSON形式でサーバーに送信します。
  • 次に、サーバーはクライアントとの接続を確立し、要求をICS(Instruments Command Server)に転送します。 Appiumサーバーは、bootstrap.jsファイルもiOSデバイスにプッシュします。 次に、ICC(Instruments Command client)がコマンドを取得し、iOSデバイス環境内のbootstrap.jsファイルで実行します。
  • 上記の操作が完了すると、実行されたコマンドのログの詳細がクライアントによってサーバーに返送されます。

Androidデバイスで動作するAppium

Androidデバイスでは、AppiumはAndroid開発者によって開発されたUIAutomatorフレームワークを使用して、アプリケーションのユーザーインターフェイス要素と対話します。 UI Automatorは、ユーザーインターフェイスをテストするために使用されるフレームワークです。

上記のAppiumAndroidアーキテクチャの図は、Android自動化のためのAppiumアーキテクチャを示しています。 上記の図は、bootstrap.jsをbootstarp.jarに置き換えています。

学ぶ: Android SDK:初心者向けの詳細なチュートリアル

AndroidAppiumアーキテクチャの図を段階的にデコードしてみましょう

  • Appiumクライアントは、JSONワイヤープロトコルを使用してAppiumサーバーと通信し、コマンドをJSON形式でサーバーに送信します。
  • 次に、Appiumサーバーはクライアントとの接続を確立し、要求をICSUiAutomatorコントローラーに転送します。 Appiumサーバーは、bootstrap.jarファイルもAndroidデバイスにプッシュします。 UiAutomatorコマンドは、クライアントがコマンドを取得し、Androidデバイス環境内のbootstrap.jarファイルで実行します。
  • 上記の操作が完了すると、実行されたコマンドのログの詳細がクライアントによってAppiumサーバーに返送されます。

また読む:フルスタックvs Android開発者:どちらを選択する必要があります

結論

Appiumは、間違いなくモバイルアプリケーションテストで最も人気のあるプラットフォームの1つです。 これまで、 Appiumのアーキテクチャ、ワークフロー、およびiOSおよびAndroidプラットフォームでのAppiumの動作概要について学習しました。

フルスタックソフトウェア開発の詳細に興味がある場合は、upGrad&IIIT-Bのフルスタックソフトウェア開発のPGディプロマをチェックしてください。これは、働く専門家向けに設計されており、500時間以上の厳格なトレーニング、9以上のプロジェクト、および割り当て、IIIT-B卒業生のステータス、実践的な実践的なキャップストーンプロジェクト、トップ企業との仕事の支援。

未来のキャリアに備える

フルスタックソフトウェア開発におけるアップグレードおよびIIIT-BANGALOREのPGディプロマ
今すぐ申し込む