2016-09-27 4 views
0

나는 Nightwatch.js를 통해 시작된 firefox/chrome 데스크탑 테스트의 시작점 인 셀렌 허브가있는 작동중인 셀레늄 구성을 가지고 있습니다. 내가 좋아하는 것 지금Nightwatch.js + Selenium Hub + Appium + 실제 모바일 장치를 구성하는 방법은 무엇입니까?

{ 
    "capabilities": [ 
     { 
      "browserName": "Safari", 
      "platformName": "iOS", 
      "platformVersion": "9.3", 
      "maxInstances": 1, 
      "platform": "MAC" 
     } 
    ], 
    "configuration": { 
     "cleanUpCycle": 2000, 
     "timeout": 30000, 
     "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", 
     "url":"http://192.168.24.222:4723/wd/hub", 
     "host": "192.168.24.222", 
     "port": 4723, 
     "maxSession": 1, 
     "register": true, 
     "registerCycle": 5000, 
     "hubPort": 4444, 
     "hubHost": "selenium-hub-host" 
    } 
} 

:

지금은 약간의 검색 후, 나는 맥 상에 Appium을 구성한 다음과 같이 내 허브와 연결, 모바일 장치에 대한 테스트를 추가, 그래서 것 로 :

  1. 구성 Appium와 가상 장치 (I가 공식 문서로 잃었어요 내가 애플 기기에 익숙하지 않은 해요)
  2. 그들에 실행하는 데 적절한 Nightwatch 테스트 구성을 가지고
  3. ,
  4. 감사의 Appium 측

어떤 도움을 환영 하나 이상의 실제 장치를 추가

편집 : 나는 데프 모두 nightwatch 작업의 기능을 향상하여 1과 2를 달성했고 appium 기능 :

Nightwatch.js에

: appium의 nodeconf.json에

"ios": { 
    "desiredCapabilities" : { 
     "browserName" : "Safari", 
     "deviceName": "iPhone Simulator", 
     "platformName" : "iOS", 
     "platform" : "MAC", 
     "javascriptEnabled" : true, 
     "acceptSslCerts" : true 
    } 
} 

:

"capabilities": [ 
    { 
     "browserName": "Safari", 
     "platformName": "iOS", 
     "platformVersion": "9.3", 
     "deviceName": "iPhone Simulator", 
     "maxInstances": 1, 
     "platform": "MAC" 
    } 
] 

하지만 지금은 그것 (분명히 잘못된 PARAM) 셀레늄 허브 내 nodeconf를 등록하지 않고있어, 실제 장치와 붙어있어 : 여기

{ 
    "browserName": "Safari", 
    "platformName": "iOS", 
    "platformVersion": "8.1", 
    "deviceName": "testmac’s iPad", 
    "udid": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 
    "maxInstances": 1, 
    "platform": "MAC" 
} 

내 허브 그리드입니다 : selenium hub grid

답변

0

하나 이상의 iOS 장비를 연결하려면 here에 설명 된 문제 해결 방법을 사용해야합니다. Appium을 시작하는 동안 추가 매개 변수를 제공해야합니다.

.node -p 6001 -U --tmp /temp/dir1 & 
.node -p 6002 -U --tmp /temp/dir2 & 

Android 장치를 실행하는 데 제한이 없습니다. 나는 이것이 올바른 태도인지는 모르지만 몇 주 전에 나를 위해 일했다. 구성 파일 - huaweiG6.json :

{ 
    "capabilities": 
    [ 
    { 
     "browserName": "HuaweiG6", 
     "deviceName":"8c34fd0c5a94", 
     "version":"4.3", 
     "maxInstances": 1, 
     "platform":"ANDROID", 
     "newCommandTimeout":"30", 
     "deviceReadyTimeout":5 
    } 
    ], 
    "configuration": 
    { 
    "cleanUpCycle":2000, 
    "timeout":10800, 
    "url":"http://127.0.0.1:4727/wd/hub", 
    "host": "127.0.0.1", 
    "port": 4727, 
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", 
    "maxSession": 1, 
    "register": true, 
    "registerCycle": 5000, 
    "hubPort": 4444, 
    "hubHost": "172.17.0.232" 
    } 
} 

그리고 시작 Appium 명령 :

appium --nodeconfig huaweiG6.json -p 4727 -cp 4727 -U 8c34fd0c5a94 

-U 매개 변수는 here을 설명 -udid에 해당합니다. 다음을 실행하여 ID를 확인할 수 있습니다.

adb devices 

Android SDK를 설치 한 후 가능합니다. deviceName 매개 변수는 동일한 값을 가져야합니다. 허브에 연결하는 데 문제가 있으면 hubHost 매개 변수를 변경하십시오. 허브 호스트는 실행중인 허브 인스턴스의 도메인 또는 IP이어야합니다.

https://github.com/michaeltamm/junit-toolbox의 주자를 사용하여 병렬로 실행되도록 테스트했습니다.자바 사용자를위한 대안 Maven surefire 플러그인을 사용하는 것입니다. http://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html

행운을 빌어 요.