Selenium Grid?

Selenium Grid?

Selenium Grid는 분산환경(서로다른 OS, 서로다른 Browser)에서 여러 개의 브라우져를 병렬적으로 테스트 할 경우에 사용된다.

Selenium-Grid allows you run your tests on different machines against different browsers in parallel. That is, running multiple tests at the same time against different machines running different browsers and operating systems. Essentially, Selenium-Grid support distributed test execution. It allows for running your tests in a distributed test execution environment.

Selenium Gird는 여러 대의 노드에서 병렬적으로 테스트를 진행하기 때문에 테스트의 속도가 빠르다. 예를 들어서 100개의 테스트들이 있는 경우에 4대의 노드에서 테스트를 진행한다면 하나의 노드에서 테스트를 진행하는 경우보다 1/4의 시간이 걸린다.


Selenium GirdJenkins에 플러그인으로 설치하여 사용할 수 있는데, plug-in을 추가하는 방법은 아래의 포스트를 참조한다.

참고 : Jenkins에 Selenium Grid 플러그인 추가하기


Hub

image

Grid는 하나의 Hub와 하나 이상의 Node들로 이루어져 있다. 여기서 Hub란, 테스트를 로드하는 중심부이다. Hub는 하나의 Grid안에 하나만 존재해야하고 하나의 machine에서 실행되어야 한다


Nodes

Nodes는 Hub에 올라와있는 테스트를 실제로 진행하는 인스턴스이다. 하나의 Grid에는 하나 이상의 Node들이 존재할 수 있고 다양한 플랫폼과 브라우져를 가지는 여러 개의 machine에서 실행될 수 있다.

아래의 명령어를 통해 콘솔창에서 Node를 Hub에 등록할 수 있다.

1
java -jar selenium-server-standalone-2.42.2.jar -role node -hub http://<hub-ip>:<hub-port>/grid/register -port 5555 -browser browserName="<code>safari",</code>version=5,platform=WINDOWS",javascriptEnable=true -Dwebdriver.ie.driver="F:\SafariDriver.exe