Appiumの統合

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

環境を準備する

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

トップに戻る

Appiumテストを準備する

UFT Mobileで実行するAppiumテストを準備するには:

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

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

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

  • アプリをUFT Mobileにアップロードして、テストに利用できるようにします。詳しくは、アプリの表示、アップロード、管理をご覧ください。

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

トップに戻る

Appiumスクリプトの実行

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

  • Appiumテストを匿名で実行すると、ユーザーはデフォルトのワークスペースに割り当てられます。詳しくはラボとワークスペースの管理をご覧ください。Appium匿名アクセスはLDAPではサポートされていないことに注意してください。

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

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

    iOS
    UFT Mobileは、Macマシンを必要とせずにiOSデバイスでテストを実行できます。iOSで使用されるデフォルトの自動化方法はXCUITestです。

    UIAオートメーションを明示的に使用する場合は、automationName Appiumの機能uiAutomationに設定してください。この機能は、iOSバージョン9.3から11.1でのみ使用できます。11.1以降のiOSバージョンでは、この機能はサポートされておらず、すべてのテストでXCUITestが使用されます。

    Android OS 5.0以降
    UiAutomator2はデフォルトの自動化エンジンです。uiautomator2ドライバーは、GoogleのUiAutomator2テクノロジーを使用して、デバイスまたはエミュレーターでの自動化を可能にします。デフォルトを上書きしてUiAutomator1を使用するには、automationName Appiumの機能を「android」に設定します。
    Android OS <5.0
    UiAutomator1( "android")は、Android OS <5.0のデフォルトです。自動化エンジンとして使用できるのはUiAutomator1のみです。

トップに戻る

SSLでAppiumを使用する

SSLを使用してAppiumおよびUFT Mobileを操作するには、AppiumクライアントがUFTM証明書を信頼する必要があります。SSL証明書が有名な認証局によって署名されていない場合は、UFTM証明書をエクスポートして、それを信頼するようにAppiumクライアントを構成するか (推奨)、SSL警告を無視するようにクライアントを構成できます。証明書のエクスポートの詳細については、SSLと証明書の操作を参照してください。

トップに戻る

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

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

UFT Mobileの共通機能とそのサポートのリストについては、UFT Mobile 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)。これは、UFT Mobileによって割り当てられた一意のアプリケーション固有の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機能

UFT Mobile内に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シミュレーションを参照してください。

トップに戻る

並列テスト

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

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

トップに戻る

その他の参照項目: