Appiumの統合

Appiumとの統合により、Digital Labの機能を利用してAppiumスクリプトを実行できます。

環境を準備する

自動化されたAppiumテストを実行するための環境を準備するには、Appiumプロジェクトを認識するようにVisual StudioやEclipseなどの作業環境を構成する必要があります。

トップに戻る

Appiumテストを準備する

Digital Labで実行するAppiumテストを準備するには:

  • セッションを開始するコードで、AppiumサーバーのURLとポートをDigital LabのURLとポートに次の形式で置き換えます (例については以下を参照)。

    driver = new AndroidDriver(new URL("http://<my Digital Lab Server>:<port>/wd/hub"), capabilities);

    driver = new IOSDriver(new URL("http://<my Digital Lab Server>:<port>/wd/hub"), capabilities);

  • アプリをDigital Labにアップロードして、テストに利用できるようにします。詳細については、アプリの管理を参照してください。

注: iOSデバイスにアプリをインストールするのにMacマシンは必要ありません。

トップに戻る

Appiumスクリプトの実行

Appiumテストを実行するときは、次のガイドラインを考慮する必要があります。

  • Appiumテストを匿名で実行すると、ユーザーはデフォルトのワークスペースに割り当てられます。詳細については、ラボとワークスペースの管理を参照してください。Appium匿名アクセスはLDAPでは使用できません。
    ValueEdge Digital Lab: Appium匿名アクセスはサポートされていません。

  • SafariドライバーはLinuxおよびWindowsではサポートされていません。

  • Digital LabでAppiumテストを実行する場合、スクリプト実行時に使用する自動化の方法を指定できます。

    iOS
    Digital Labは、Macマシンを必要とせずにiOSデバイスでテストを実行できます。iOSで使用される自動化方法はXCUITestです。
    Android OS 8以降
    UiAutomator2はデフォルトの自動化エンジンです。uiautomator2ドライバーは、GoogleのUiAutomator2テクノロジーを使用して、デバイスまたはエミュレーターでの自動化を可能にします。デフォルトを上書きしてUiAutomator1を使用するには、automationName Appiumの機能を「android」に設定します。

トップに戻る

SSLでAppiumを使用する

SSLを使用してAppiumおよびDigital Labを操作するには、AppiumクライアントがUFT Digital Lab証明書を信頼する必要があります。

SSL証明書が既知の証明機関によって署名されていない場合は、次の手順を実行します。

Appiumクライアント 手順
Appium Inspector
  1. Windowsの信頼されたルート証明機関に証明書をインストールします。

  2. Appium Inspectorの [Advanced Settings] で [Allow Unauthorized Certificate] を選択します。

その他

Digital Lab証明書をエクスポートし、それを信頼するようにAppiumクライアントを構成します (推奨)。あるいは、SSL警告を無視するようにクライアントを構成します。証明書のエクスポートの詳細については、SSLと証明書を参照してください。

トップに戻る

Appiumセットアップコードスニペット

次のコードスニペットは、Androidネイティブアプリ、Chrome、iOSネイティブアプリ、iOS Safariのセットアップ例を示しています。太線は必須です。

Digital Labの共通機能とそのサポートのリストについては、Digital Lab Appium機能を参照してください。

重要: これらのコードスニペットは、Java-Client v7.xを使用します。v8以降を使用する場合は、githubの公式Java-Client移行ガイドを参照してください。追加のコードサンプルについては、UFTM githubリポジトリを参照してください。

追加のコードサンプルについては、Appiumコード例 - JavaおよびAppiumシミュレーションを参照してください。

トップに戻る

一般的なAppium API呼び出し

次のAppium API呼び出しを使用して、アプリを管理します。

Killアプリケーション

Kill API呼び出しは、アプリケーションを停止します。アプリを最小化するだけでなく、プロセスを終了します。スクリプト名はmc:application:killであり、次のいずれかの引数を使用する必要があります。

appPackage Androidのみ
アプリの詳細カードにパッケージIDと表示されているアプリを識別するパッケージ名。例: com.Advantage.aShopping
bundleId iOSのみ
アプリの詳細カードにパッケージIDとして表示される一意の識別子であるアプリのバンドルID。例: com.mf.iShopping
id アプリケーション識別子 (文字列)。例: com.mf.iShopping
uuid ユニバーサル一意識別子 (UUID)。これは、Digital Labによって割り当てられた一意のアプリケーション固有のIDです。たとえば、「bf441f2b-3f16-4bb5-950d-4e3eaf2efffb」です。


次のサンプルコードは、Android Advantageアプリを終了します。

コードをコピーする
Map<String, Object> params = new HashMap<String, Object>();
params.put("appPackage", "com.Advantage.aShopping");
appiumDriver.executeScript("mc:application:kill", params);

 

「params.put」で始まる行は、次のオプションのいずれかに置き換えることができます。

  • params.put("bundleId", "com.mf.iShopping");

  • params.put("uuid", "bf441f2b-3f16-4bb5-950d-4e3eaf2efffb");

  • params.put("id", "com.Advantage.aShopping");

追加のコードサンプルについては、Appiumコード例 - JavaおよびAppiumシミュレーションを参照してください。

Network Virtualization機能

Digital Lab内にNetwork Virtualization機能を追加する方法の例については、Network Virtualizationヘルプセンターを参照してください。

トップに戻る

Appiumログを取得する

Appiumテストの実行中にログファイルが生成されます。

ログを取得するには、mc-wd:downloadLogsスクリプトを使用して、エンコーディングを指定します。

コネクターがこのコマンドを受信すると、現在のAppiumプロセスのすべてのセッションのログが取得されます。文字列を応答本文に添付します。

Appiumユーザーのテストコードは、応答本文の文字列を使用し、それに応じて処理します。

例:

HashMap<String, String> encoding= new HashMap<String, String>();

encoding.put("encoding", "UTF-8");

String logFileContents = (String) wd.executeScript("mc-wd: downloadLogs", encoding);

追加のコードサンプルについては、Appiumコード例 - JavaおよびAppiumシミュレーションを参照してください。

トップに戻る

並列テスト

Digital Labで、AppiumとSeleniumのテストを並行して実行できます。

これは、コーディングするか、JenkinsなどのCI (継続的インテグレーション) ツールを使用して行うことができます。Jenkinsで並列テストを実行する方法の例については、Jenkins Wikiを参照してください。

トップに戻る

その他の参照項目: