Appiumスクリプトの実行

Appiumは、Android / iOSのみ、またはその両方をサポートするさまざまなモバイルアプリで使用されるオープンソースのテスト自動化フレームワークです。AnyTestは、Appiumスクリプトと統合された人気のモバイルテストプラットフォームであり、モバイルアプリのテストも自動化できます。JavaでAppiumスクリプトを使用している(またはビルドする予定がある)場合は、pCloudy-java-connector.jarを使用してAnyTestプラットフォームと統合できます。Appiumスクリプトがない場合は、 ここ から残りのAPIを使用する必要があります。

このドキュメントの目的

このヘルプガイドは、AnyTestプラットフォームが既存のAppiumスクリプトをAnyTestと統合するために提供するAPIを理解するのに役立ちます。統合後、PCからAnyTest実デバイスクラウドに直接Appiumスクリプトを実行できるようになります。

前提条件

  • Appiumスクリプト

  • APKまたはIPAファイル

  • AnyTestアカウント

APIキーを取得する手順

ステップ1: anytet.jp登録済みのアカウントにログイン

ステップ2: 画面の右上隅に表示されている名前をクリックし、 [設定] をクリックします

ステップ3: APIアクセスキーはここにあります。 同じものをコピーするか、[再生成]をクリックして新しいものを取得できます。

AnyTestとAppiumプロジェクトの統合:

3つの異なる方法を使用して、AppiumプロジェクトをAnyTestと統合できます。各オプションをクリックして、詳細を確認してください。

オプション1

新しいAppium統合アーキテクチャ

AnyTestAppiumケイパビリティの使用

AnyTestAppiumケイパビリティを使用してローカルAppiumドライバーをAnyTestAppiumドライバーに置き換える基本的な手順を以下に示します。

  • ローカルシステムからAnyTestにapk/ipaをアップロードします。テスト用のアプリをアップロードする手順については、 このリンク を確認してください。

  • AnyTestケイパビリティを設定する

    • pCloudy_Username:AnyTestに登録したメールIDを入力します。参考までに、 このリンク を確認してください

      例:capabilities.setCapability( “AnyTest_Username"、 '{e-mail-id}');

    • pCloudy_ApiKey:APIキーはユーザーの検証にとって重要です。anytest.jpの[設定]ページからAPIキーを生成できます。このリンクをチェックして、APIキーを取得してください。

      例:capabilities.setCapability( "AnyTest_ApiKey"、 "{api-key}");

    • pCloudy_ApplicationName:MyApp / Dataにすでにアップロードしたapk/ipaファイルのアプリケーション名を入力します。

      例:capabilities.setCapability( "AnyTest_ApplicationName"、 "pCloudyAppiumDemo.apk");

    • pCloudy_DurationInMinutes:テストを実行する期間を分単位で入力します。

      例:capabilities.setCapability( "AnyTest_DurationInMinutes"、5);

    • pCloudy_DeviceFullName:デバイスの製造元、デバイス名、およびバージョンがわかっている場合は、完全なデバイス名を入力します。

      例:capabilities.setCapability( "AnyTest_DeviceFullName"、 "Samsung_GalaxyTabA_Android_7.1.1");

      注:デバイスのフルネームがわからない場合は、コードにpCloudy_DeviceManufacturerとpCloudy_DeviceVersionを入力すると、これらのデバイスでコマンドが自動的に実行されます。

      例:capabilities.setCapability( "AnyTest_DeviceManafacturer"、 "Samsung");

      features.setCapability( "AnyTest_DeviceVersion"、 "5.0.1");

    • AnyTestAppiumエンドポイントを「 https://anytest.jp/appiumcloud/wd/hub 」として使用します

  • Appiumドライバーオブジェクトを作成して実行します

単一のAndroidデバイスでネイティブアプリのAppiumを実行するためのデバイスケイパビリティとコードスニペット:

※ 以下pCloudy を AnyTest に読み替えてください。

@BeforeMethod
public void prepareTest() throws IOException, InterruptedException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("pCloudy_Username", "Enter your email Id");
capabilities.setCapability("pCloudy_ApiKey", "Enter your API Key");
capabilities.setCapability("pCloudy_ApplicationName", "pCloudyAppiumDemo.apk");
capabilities.setCapability("pCloudy_DurationInMinutes", 5);
capabilities.setCapability("pCloudy_DeviceFullName", "Samsung_GalaxyTabA_Android_7.1.1");
driver = new AndroidDriver(new URL(" https://anytest.jp/appiumcloud/wd/hub"), capabilities);
}
Note: Capabilities mentioned below are optional:
capabilities.setCapability("pCloudy_DeviceManafacturer", "Samsung");
capabilities.setCapability("pCloudy_DeviceVersion", "5.0.1");

複数のAndroidデバイスでネイティブアプリのAppiumを実行するためのデバイスケイパビリティとコードスニペット:

@Parameters({ "deviceName" })
@BeforeMethod
public void prepareTest(String deviceName) throws IOException, InterruptedException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("pCloudy_Username", "Enter your email Id");
capabilities.setCapability("pCloudy_ApiKey", "Enter your API Key");
capabilities.setCapability("pCloudy_ApplicationName", "pCloudyAppiumDemo.apk");
capabilities.setCapability("pCloudy_DurationInMinutes", 5);
capabilities.setCapability("pCloudy_DeviceManafacturer", deviceName);
driver = new AndroidDriver(new URL(" https://anytest.jp/appiumcloud/wd/hub"), capabilities);
}
Note: Capabilities mentioned below are optional:
capabilities.setCapability("pCloudy_DeviceVersion", "5.0.1");
capabilities.setCapability("pCloudy_DeviceFullName", "Samsung_GalaxyTabA_Android_7.1.1");

単一のiOSデバイスでネイティブアプリのAppiumを実行するためのデバイスケイパビリティとコードスニペット:

@BeforeMethod
public void prepareTest() throws IOException, InterruptedException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("pCloudy_Username", "Enter your email Id");
capabilities.setCapability("pCloudy_ApiKey", "Enter your API Key");
capabilities.setCapability("pCloudy_ApplicationName", "TestmunkDemo.ipa");
capabilities.setCapability("pCloudy_DurationInMinutes", 5);
capabilities.setCapability("pCloudy_DeviceFullName", "Apple_iPhone6S_Ios_11.2.0");
driver = new IOSDriver(new URL(" https://anytest.jp/appiumcloud/wd/hub"), capabilities);
}
Note: Capabilities mentioned below are optional:
capabilities.setCapability("pCloudy_DeviceManafacturer", "Apple");
capabilities.setCapability("pCloudy_DeviceVersion", "10.3.2");

複数のiOSデバイスでネイティブアプリのAppiumを実行するためのデバイスケイパビリティとコードスニペット:

@Parameters({ "deviceName" })
@BeforeMethod
public void prepareTest(String deviceName) throws IOException, InterruptedException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("pCloudy_Username", "Enter your email-id");
capabilities.setCapability("pCloudy_ApiKey", "Enter your APIKey");
capabilities.setCapability("pCloudy_ApplicationName", "TestmunkDemo.ipa");
capabilities.setCapability("pCloudy_DurationInMinutes", 5);
capabilities.setCapability("pCloudy_DeviceManafacturer", deviceName);
driver = new IOSDriver(new URL(" https://anytest.jp/appiumcloud/wd/hub"), capabilities);
}
Note: Capabilities mentioned below are optional:
capabilities.setCapability("pCloudy_DeviceVersion", "10.3.2");
capabilities.setCapability("pCloudy_DeviceFullName", "Apple_iPhone6S_Ios_11.2.0");

単一のiOSで実行するデバイスケイパビリティとコードスニペット-ブラウザーアプリ:

@BeforeMethod
public void prepareTest() throws IOException, InterruptedException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("pCloudy_Username", "Enter your email-id");
capabilities.setCapability("pCloudy_ApiKey", "Enter your APIKey");
capabilities.setCapability("pCloudy_DurationInMinutes", 5);
capabilities.setCapability("pCloudy_DeviceFullName", "Apple_iPhone6S_Ios_11.2.0");
capabilities.setBrowserName("Safari");
driver = new IOSDriver(new URL(" https://anytest.jp/appiumcloud/wd/hub"), capabilities);
}
Note: Capabilities mentioned below are optional:
capabilities.setCapability("pCloudy_DeviceManafacturer", "Apple");
capabilities.setCapability("pCloudy_DeviceVersion", "10.3.2");

複数のiOSブラウザアプリで実行するデバイスケイパビリティとコードスニペット:

@Parameters({ "deviceName" })
@BeforeMethod
public void prepareTest(String deviceName) throws IOException, InterruptedException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("pCloudy_Username", "Enter your email-id");
capabilities.setCapability("pCloudy_ApiKey", "Enter your APIKey");
capabilities.setCapability("pCloudy_DurationInMinutes", 5);
capabilities.setCapability("pCloudy_DeviceManafacturer", deviceName);
capabilities.setBrowserName("Safari");
driver = new AndroidDriver(new URL(" https://anytest.jp/appiumcloud/wd/hub"), capabilities);
}
Note: Capabilities mentioned below are optional:
capabilities.setCapability("pCloudy_DeviceVersion", "10.3.2");
capabilities.setCapability("pCloudy_DeviceFullName", "Apple_iPhone6S_Ios_11.2.0");

単一のAndroidブラウザアプリで実行するデバイスケイパビリティとコードスニペット:

@BeforeMethod
public void prepareTest() throws IOException, InterruptedException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("pCloudy_Username", "Enter your email-id");
capabilities.setCapability("pCloudy_ApiKey", "Enter your APIKey");
capabilities.setCapability("pCloudy_DurationInMinutes", 5);
capabilities.setCapability("pCloudy_DeviceManafacturer", "Samsung");
capabilities.setBrowserName("Chrome");
driver = new AndroidDriver(new URL(" https://anytest.jp/appiumcloud/wd/hub"), capabilities);
}
Note: Capabilities mentioned below are optional:
capabilities.setCapability("pCloudy_DeviceVersion", "5.0.1");
capabilities.setCapability("pCloudy_DeviceFullName", "Samsung_GalaxyTabA_Android_7.1.1");

複数のAndroidブラウザアプリで実行するデバイスケイパビリティとコードスニペット:

@Parameters({ "deviceName" })
@BeforeMethod
public void prepareTest(String deviceName) throws IOException, InterruptedException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("pCloudy_Username", "Enter your email-id");
capabilities.setCapability("pCloudy_ApiKey", "Enter your APIKey");
capabilities.setCapability("pCloudy_DurationInMinutes", 5);
capabilities.setCapability("pCloudy_DeviceManafacturer", deviceName);
capabilities.setBrowserName("Chrome");
driver = new AndroidDriver(new URL(" https://anytest.jp/appiumcloud/wd/hub"), capabilities);
}
Note: Capabilities mentioned below are optional:
capabilities.setCapability("pCloudy_DeviceVersion", "5.0.1");
capabilities.setCapability("pCloudy_DeviceFullName", "Samsung_GalaxyTabA_Android_7.1.1");

オプション2

APIを使用する

AnyTest APIケイパビリティを使用してローカルAppiumドライバーをAnyTest Appiumドライバーに置き換える基本的な手順を以下に示します。

  • AnyTestトークンを認証して、認証トークンを取得します

  • デバイスのリストを取得します

  • デバイスを予約する

  • ローカルシステムからapk/ipaをアップロードするか、AnyTest My app/dataからapk/ipaを取得します

  • Appiumエンドポイントを取得する

  • Appiumドライバーオブジェクトを作成して実行します

  • 統合レポートを取得する

AppiumとAnyTestを統合するためのアーキテクチャ

AppiumとAnyTestの統合を理解するには、ビデオをご覧ください。

オプション3

構築済みのコネクタを使用する

以下は、コネクタとサンプルプロジェクトをダウンロードするための関連リンクです。

JavaとAppiumの統合:

Appium-Dotnet統合: https://github.com/pankyopkey/pCloudy-sample-projects/tree/master/DotNet

Appium TestNGとエクステントレポートの統合: https://github.com/pankyopkey/pCloudy-sample-projects/tree/master/Java/Advanced(Continued...)

Python-Appium統合: https://github.com/pankyopkey/pCloudy-sample-projects/tree/master/Python/AndroidNative

Ruby-Appium統合: https://github.com/pankyopkey/pCloudy-sample-projects/tree/master/Ruby

https://github.com/pankyopkey/pCloudy-sample-projects にアクセスしてください。このリポジトリには、ほとんどすべてのシナリオをカバーする、初心者から上級者向けのAppiumサンプルプロジェクトが含まれています。