2016-08-02 2 views
1

현재 나의 회사에는 약 10 개의 웹 사이트가 있습니다. 모두 단일 코드베이스에서 확장됩니다.복수의 야간 감시 인스턴스 실행

'핵심'코드베이스에서 무언가를 바꿀 때마다 우리는 10 개의 모든 웹 사이트에서 동시에 테스트를 실행하려고합니다. 클라우드에서 훨씬 쉬워 지지만 로컬로 할 수 있기를 원합니다. 이를 위해

내가 기본적으로 여러 셀레늄 인스턴스를 시작, 일, 자신의 포트를 가진 모든 및

그래서 나는 NodeJS 스크립트를 만들어 그에 대한 nightwatch.json를 생성합니다 .. 모든 인스턴스에 대해 다른 nightwatch launch_url을 설정합니다 각 사이트는 자체 launch_url 및 selenium 포트를 보유하고 있습니다. 그리고 자체 json 구성 파일을 참조하는 야간 열차를 10 번 생성합니다.

하지만 올바른 방법인지 궁금합니다.

Selenium Grid가이 문제를 해결합니까? 또한 로컬 테스트를 위해서?

감사합니다.

답변

2

셀렌 그리드는 여러 병렬 세션을 처리 할 수 ​​있도록 설계되었습니다.

하나 이상의 셀렌 노드가있는 셀레늄 허브가 하나만 있어야합니다. 모든 당신의 검사 결과가 동일하게 사용하도록 구성 할 수

:

java -jar selenium_server.jar -Dwebdriver.chrome.driver=$CHROMEDRIVER -role node -hub http://localhost:4444/grid/register -maxSession 20 -browser browserName=chrome,maxInstances=10 -browser browserName=firefox,maxInstances=10"

이 ( Selenium Grid: MaxSessions vs MaxInstances MAXINSTANCES 대 maxSession의 차이점이 하나를 체크) -browser

예를 추가 PARAMS와 셀레늄 노드를 시작 셀렌 허브 인스턴스. 당신이 클라우드 솔루션을 원하는 경우에

+0

답변 해 주셔서 감사합니다. 조금 정리 해 봤는데 .. 지금 셀레늄 인스턴스가 실제로 작동하도록했습니다.조금이라도 여러 Nightwatch 인스턴스를 실행하는 방법과 관련된 모범 사례에 대해서는 아직까지 전혀 보여주지 않습니다. – DutchKevv

+0

일반적으로 모든 셀렌 테스트를 실행하는 가장 좋은 방법은 하나의 셀렌 허브 + 여러 셀레늄 노드 (하나는 하나 VM에서 셀레늄 노드) (예 : Windows에서 여러 개, Linux에서 여러 개있을 수 있음) 테스트에서 셀레늄을 시작하지 않아야합니다. 셀레늄 허브는 시스템 서비스로 설정되어야하므로 항상 작동합니다. 이제 테스트는 셀레늄 허브와 만 이야기해야하며 셀레늄 허브는 테스트를 시작하는 데 가장 적합한 셀렌 노드를 찾을 책임이 있습니다) – nirmus

0

는 nightwatch는

"selenium" : { 
    "start_process" : true, 
    "server_path" : "lib/selenium/selenium-server-standalone-2.53.0.jar", 
    "start_session" : true, 
    "log_path" : "log/", 
    "host" : "127.0.0.1", 
    "port" : 4444, 
    "cli_args" : { 
     "webdriver.chrome.driver" : "lib/drivers/chromedriver" 
    } 
    }, 

    "test_settings" : { 
    "bstk" : { 
     "launch_url": "http://hub.browserstack.com", 
     "selenium_port" : 80, 
     "selenium_host" : "hub.browserstack.com", 
     "silent": true, 
     "screenshots": { 
      "enabled": false, 
      "path": "" 
     }, 

     "desiredCapabilities": { 
      "browserName": "chrome", 
      "javascriptEnabled": true, 
      "acceptSslCerts": true, 
      "browserstack.user": "username", 
      "browserstack.key": "..." 
     } 
     }, 
1

셀레늄 그리드 문제가 해결되지 않습니다 nightwatch.json 파일에 browserstack 또는 saucelabs와 정말 잘 작동합니다. 셀레늄 그리드는 다른 인스턴스에서 동일한 테스트 케이스를 실행하기 때문입니다. Selenium 그리드는이 테스트 케이스가 다른 브라우저, 브라우저 버전 또는 다른 OS와 호환되는지 여부를 확인하는 데 사용됩니다. Selenium 격자를 확인하십시오 : http://www.seleniumhq.org/docs/07_selenium_grid.jsp

그리고 귀하의 경우 다른 URL에 대한 테스트 케이스를 실행하려면 10 가지 테스트 케이스가 있습니다.

당신은 올바르게하고 있습니다. "그래서 NodeJS 스크립트를 만들었습니다. 각 사이트마다 night_atch와 jemson을 생성합니다. 각각 자체 launch_url과 selenium 포트를 보유하고 있습니다. 파일."

test_workers를 설정하여 각 테스트 케이스 세트를 병렬로 실행할 수 있습니다. 예 : "test_workers": { "enabled": true, "workers": "auto"}. 테스트 케이스를 병렬로 실행하려면 test_workers를 확인하십시오. http://nightwatchjs.org/gettingstarted/#basic-settings

제가 틀렸다면 수정하십시오.