2017-01-09 8 views
0

nightwatchJS를 사용하여 Browserstack에 대한 테스트를 작성하고 있습니다.nightwatch.json 파일을 최적화하는 방법은 무엇입니까?

내 nightwatch.json은 다음과 같습니다

{ 
    "src_folders": [ 
     "..." 
    ], 
    "tests_output": "test/tests_output/", 
    "detailed_output": true, 
    "selenium": { 
     "start_process": false, 
     "host": "hub.browserstack.com", 
     "port": 80 
    }, 
    "test_workers": { 
     "enabled": true, 
     "workers": 2 
    }, 
    "test_settings": { 
     "ie7": { 
      "selenium_port": 80, 
      "selenium_host": "hub.browserstack.com", 
      "silent": true, 
      "desiredCapabilities": { 
       "os": "Windows", 
       "os_version": "XP", 
       "browserName": "IE", 
       "version": "7", 
       "resolution": "1024x768", 
       "javascriptEnabled": true, 
       "acceptSslCerts": true, 
       "browserstack.local": "true", 
       "browserstack.video": "true", 
       "browserstack.debug": "true", 
       "browserstack.localIdentifier": "<localIdentifier>", 
       "browserstack.user": "<userName>", 
       "browserstack.key": "<userkey>" 
      } 
     }, 
     "ie8": { 
      "selenium_port": 80, 
      "selenium_host": "hub.browserstack.com", 
      "silent": true, 
      "desiredCapabilities": { 
       "os": "Windows", 
       "os_version": "7", 
       "browserName": "IE", 
       "version": "8", 
       "resolution": "1024x768", 
       "javascriptEnabled": true, 
       "acceptSslCerts": true, 
       "browserstack.local": "true", 
       "browserstack.video": "true", 
       "browserstack.debug": "true", 
       "browserstack.localIdentifier": "<localIdentifier>", 
       "browserstack.user": "<userName>", 
       "browserstack.key": "<userkey>" 
      } 
     }, 
     "chrome": { 
      "selenium_port": 80, 
      "selenium_host": "hub.browserstack.com", 
      "silent": true, 
      "desiredCapabilities": { 
       "os": "Windows", 
       "os_version": "10", 
       "browserName": "chrome", 
       "resolution": "1024x768", 
       "javascriptEnabled": true, 
       "acceptSslCerts": true, 
       "browserstack.local": "true", 
       "browserstack.video": "true", 
       "browserstack.debug": "true", 
       "browserstack.localIdentifier": "<localIdentifier>", 
       "browserstack.user": "<userName>", 
       "browserstack.key": "<userkey>" 
      } 
     }, 
     //Similar blocks for other platforms 
    } 
} 

그것은 구성 파일을 정의하는 고전적인 방법이다. 각 플랫폼에서 중복 많은 정보가있는 발언 수 있듯이 ... localIdentifier, 는 userName, userkey는 등

내 질문 : 구성 파일을 최적화 할 수있는 방법이 있나요를? 예를 들어 userKey를 또는 browserstack.debug으로 변경하려면 한 곳에서만 변경하고 실수는하지 마십시오.

+1

BrowserStack의 샘플 저장소 (https://github.com/browserstack/nightwatch-browserstack/blob/master/conf/parallel.conf.js)를 확인할 수 있습니까? ''test_settings ': {<브라우저 특정 대문자>}'와 함께 conf 파일에서''common_capabilities': {}'을 설정할 수 있습니다. 귀하의 사례에 도움이 될 것입니다. 또한 JSON 파일 내에서 동일한 키 ('common_capabilities')를 시도해보고 도움이되는지 확인할 수 있습니까? –

+0

@MukeshTiwari, 고맙습니다! –

답변

0

@ Mukesh-Tiwari의 의견 덕분에 nightwatch.json 파일을 최적화 할 수있었습니다. 난 그냥 코드의 한 라인을 만지지을 변경해야합니다 그래서 만약 내가 한 장소에서 selenium_host, selenium_port을 정의하고있어, 위의 예에서

for(var i in nightwatch_config.test_settings){ 
    var config = nightwatch_config.test_settings[i]; 
    config['selenium_host'] = nightwatch_config.selenium.host; 
    config['selenium_port'] = nightwatch_config.selenium.port; 
    config['desiredCapabilities'] = config['desiredCapabilities'] || {}; 
    for(var j in nightwatch_config.common_capabilities){ 
    config['desiredCapabilities'][j] = config['desiredCapabilities'][j] || nightwatch_config.common_capabilities[j]; 
    } 
} 

: 나는 아이디어를 공유하고 있습니다.

다시 한 번 감사합니다. Mukesh-Tiwari. Imprtant

당신은 우리가 JS 코드를 사용하고 있기 때문에 nightwatch.jsnightwatch.json에서 구성 파일을 변경해야합니다, 그것은 작동하는지 확인합니다.