2016-10-19 10 views
1

すべてのこれらの日、私は私のシステムに一つだけ接続されたデバイス上でappiumを使用して、私のAndroidのテストケースを実行していますパラレル実行が

今私は2と私のシステムに接続された二つのデバイス上で実行する必要がありますappium

の異なるポートは、私はそのテストような機能を設定する方法を知りたい しかし、二つの試験が同じデバイス

に起動している異なる機能を持つ2つのテストケースを実行しています別のポートを2 appiumのを起動しています特定の端末で起動します

I had tried with this capability but no use 
capabilities.setCapability("deviceName", "TA09401JJY"); 

私はそれぞれに独自のポートを使用してappiumの複数のインスタンスを起動することによって、別の実際のデバイス上で並列テストを実行することができたので、そのテストは、特定のデバイス上で

+0

私はあなたがそれのためにグリッドを使用しなければならないと思います。 –

+0

グリッドの使い方を教えてください私はそれについて知らない –

+0

それは広いトピックです。それをGoogleにしてください。 –

答えて

2

を起動します私が設定するための機能であるかを教えてください。次に、私のappiumドライバを作成するときに、私が望むデバイスのUDIDを、その特定のデバイスに使用したいappiumインスタンスのポートに渡します。ここで

はappiumドライバをインスタンス化するための私の合理化(のみ1つのデバイス)のpythonのコードです:

from appium import webdriver 

def CreateDriver(value): 
    appiumHub = None 
    port = None 

    desired_caps = {} 
    desired_caps['autoAcceptAlerts'] = True 
    desired_caps['newCommandTimeout'] = '120' 

    if value == 'iPhone6s': 
     desired_caps['platformName'] = 'iOS' 
     desired_caps['deviceName'] = 'iPhone1' 
     desired_caps['platformVersion'] = '8.3' 

     desired_caps['udid'] = 'df33dh93827364kj3iujgr3g32t22hg878ww7878' 

     port = 4723 

    appiumHub = 'http://localhost:' + str(port) + '/wd/hub' 
    desired_caps['bundleId'] = 'com.someplace.myapp' 

    driver = webdriver.Remote(appiumHub, desired_caps) 

    return driver 

私は私のテストメソッドのコピーを作成し、にどのようなデバイスに沿って渡され、その後、自分のファイルに入れなければなりませんでしたddtを使用して実行します。

@data('iPhone6s') 
def test_P2A_Accept(self, value):   
    # Some test method 

その後、私はそれらを並列に実行するために取得するには、コマンドファイル(MAC)から各テストモジュールを実行します(そして、より良い報告のためpy.testを使用)になります。

結果= $(日付 "+結果%Y%M%D-%のHの%のM%S.html")

py.test /ユーザ/ jdoeに/ドキュメント/ワークスペース/ユニット\テスト\ --self-含ま-htmlの2/UnitTests2Package/Pythonの-セレン/ Tests_P2A.py --html = $結果、我々は複数のデバイスを実行することができたときに

オープン$結果は

うまくいけば、その日が来るだろう同じテスト方法から並行して、それまではこれが私が思い付く最高のものです。

+0

解決策を見つけるのを助けました –

+0

こんにちはRKelley、同じテスト方法で複数のデバイスを並行して実行できましたか? – akvenk

+0

@akvenk同じテストが異なるデバイス上で並行して実行されるように、テストメソッドのコピーを作成しなければなりませんでした。理想的ではありませんが、何かがうまくいくまでの回避策です。 – RKelley

1
capabilities.setCapability(UDID_KEY, UDID_VALUE); 

UDID_VALUEはすべてのデバイスで一意です。

これは、cmdでadbデバイスを使用することで取得できます。

関連する問題