4

Android プラットフォームの複数のデバイスでスクリプトを実行しようとしていますが、実行できません。ソリューションの Github ページを調べたところ、単一の Appium サーバーから複数の (Android) デバイスをサポートすることに関する次のリンクが見つかりました。

しかし、まだ複数のデバイスのセットアップ環境がわかりません。

4

5 に答える 5

1

複数のAndroidデバイスで順次または並列実行するには、次のことが必要です-

  1. デバイスまたはエミュレーターごとに個別の Appium インスタンスを用意する
  2. デバイス/Appium インスタンスごとに、Appium ポート、ブートストラップ ポート、デバイス ID (つまり、デバイス名ではなく UDID) に異なる値を指定します。
  3. アプリで Chrome ブラウザーを使用している場合は、別の Chrome ドライバー ポートを提供します。

並列実行に Java Thread と Runnable インターフェイスを使用する以下の投稿を確認してください - http://automationtestinghub.com/appium-parallel-execution/

于 2016-11-17T01:50:18.027 に答える
1

複数のデバイスで appium スクリプトを実行するには

  1. ポート番号が異なるデバイスの数に応じて、appium サーバーを起動する必要があります。
  2. 好みの言語 (Java、Ruby) で各ポートを使用してドライバー インスタンスを作成します。
  3. これらのスクリプトを同時に実行します。
  4. 異なるドライバー インスタンスを作成するスレッド ベースのプログラムを作成することもできます。

ここでは、単純な Java スレッド ベースのプログラムを作成しました。

https://github.com/sameer49/Appium-Grid-For-Android

于 2015-03-30T07:53:25.917 に答える
1

次のコードが役立ちます。

//単一の appium サーバーから複数のエミュレーターを実行する

public class Test{

    WebDriver driver = null;
    int timeOut=180;
    int port=-1;

    Test(int port){
        this.port=port;
    }

    public void testEmulator(int p) throws Exception {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(CapabilityType.BROWSER_NAME, "Android");
        capabilities.setCapability(CapabilityType.VERSION, "4.3");
        capabilities.setCapability(CapabilityType.PLATFORM, "Windows");

        capabilities.setCapability("udid","emulator-"+p);

        capabilities.setCapability("app-package", "your.app.pkg");
        capabilities.setCapability("app-activity",
            "your.app.pkg.Activity");
        driver = new RemoteWebDriver(new URL("http://127.0.0.1:"+this.port+"/wd/hub"),
        capabilities);
        driver.manage().timeouts().implicitlyWait(timeOut, TimeUnit.SECONDS);
        Thread.sleep(50000);
    }

    public void tearDown() {
        if (driver != null)
            driver.quit();
    }

    public void runTest() {
        try {
            testEmulator(5554);     // for emulator on port 5554
            tearDown();
            testEmulator(5556);     // for emulator on port 5556
            tearDown();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public static void main(String[] args) {
        new Test(4723).runTest();       // appium server port 4723
    }
}
于 2014-05-13T07:19:18.377 に答える
0

GUIといえば、環境はWindowsでしょうか。次に、次のバッチを使用できます。

@ECHO OFF

cd "C:\Program Files (x86)\Appium\node_modules\appium"

node server.js --app "<path-to-your-project>\bin\<app-name>.apk" -p <port-to-listen-on> -dp <device-port-to-connect-to-device-on>

これにより、2 つの異なる Appium サーバーを起動し、それらを並行して使用できるようになります。

使用可能なすべてのコマンドの完全なリストを表示するには、次のように入力しますnode server.js --help

npm 経由で Appium をインストールした場合、server.js へのパスは "C:\Users\\AppData\Roaming\npm\node_modules\appium" のようになります。

于 2013-10-23T08:40:51.800 に答える