2016-10-19 4 views
1

이 모든 일이 내 시스템에 하나의 연결된 장치에 appium를 사용하여 내 안드로이드 테스트 케이스를 실행하고병렬 실행이

지금은 두 사람과 함께 내 시스템에 연결된 두 장치에서 실행해야 이 appium의 내가 다른 기능 그러나이 개 시험 두 개의 테스트 케이스를 실행하고 다른 포트가 같은 장치에서 실행되는 appium에 다른 포트는

내가 시작하고

는 그 시험 있도록 기능을 설정하는 방법을 알고 싶은 특정 기기에서 실행됩니다.

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

나를 이렇게 그 테스트는 특정 장치에 시작됩니다 설정할 수있는 기능이 무엇인지 알려 주시기 바랍니다

+0

그리드를 사용해야한다고 가정합니다. –

+0

그리드 사용법을 알려주십시오. 잘 모르겠습니다. –

+0

넓은 주제입니다. 그걸 Google로 보내주십시오. –

답변

2

나는 각각에 대해 고유 한 포트를 사용 appium의 여러 인스턴스를 시작하여 별도의 실제 장치에서 병렬 테스트를 실행 할 수 있었다 . 그런 다음 appium 드라이버를 만들 때 원하는 특정 장치에 사용하려는 appium 인스턴스의 포트와 함께 원하는 장치의 UDID를 전달합니다.

다음

은 appium 드라이버 인스턴스 내 간소화 (단 1 장치) 파이썬 코드 :

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 사용) :

,536,913,632를 10

결과 $ = (날짜 "+ 결과 %의 Y의 %의 m %의 %의 H의 %의 M의 % S.html D-")

py.test/사용자 /가 jdoe/문서/작업/단위 \ 테스트 \ 2/UnitTests2Package/파이썬 셀레늄/Tests_P2A.py --html = $ 결과 --self 포함 된 HTML이

열린 $ 결과 희망

, 우리는 여러 장치를 실행할 수 있습니다 때 일이 올 것이다 같은 테스트 방법에서 병렬로,하지만 그때까지 내가 올 수있는 최고입니다.

+0

해결책을 찾을 수 있도록 도와주었습니다 –

+0

안녕하세요 RKelley, 동일한 테스트 방법으로 여러 장치를 병렬로 실행할 수 있었습니까? – akvenk

+0

@akvenk 다른 장치에서 같은 테스트를 병렬로 실행하려면 테스트 메서드 복사본을 만들어야했습니다. 이상적이지는 않지만, 뭔가 나아질 때까지 해결 방법이 있습니다. – RKelley

1
capabilities.setCapability(UDID_KEY, UDID_VALUE); 

UDID_VALUE는 모든 장치마다 고유합니다.

cmd에서 adb 장치를 사용하여 가져올 수 있습니다.