Selenium Grid

Dahun Yoo·2020년 6월 6일
0

What is Selenium grid?

Running test different machine and different browser.
Selenium-grid support distributed test execution and Parallel test. In multiple machines on Selenium grid.

Selenium gird는 여러 기기와 여러 브라우저들을 동시에 테스팅할 수 있게 도와줍니다. 즉, 병렬적인 테스팅이 가능합니다.

Hub

Central point that will receive all the test request and distribute them. node.
Machine containing the hub is where the tests will be triggered. But browser being automated on the node.

hub에서 각각의 node들로 테스트 실행등을 뿌려주는 역할을 합니다.

Node

Node is Selenium instance.
노드에는 필요한 java 혹은 jar, chrome driver가 설치되어있어야 합니다.

Registering Hub

https://www.selenium.dev 에서 Grid용의 jar파일을 다운받습니다.
그 다음 터미널을 실행시킨 후, jar파일의 위치로 이동하여 아래 커맨드를 실행합니다.
java -jar selenium-server-standalone-3.141.59.jar -role hub

(다운 받은 jar파일의 이름에 따라 커맨드는 적절하게 수정해주어야합니다.)

이렇게하면 위 커맨드를 실행한 컴퓨터가 Hub역할을 하게됩니다.

Registering Node

다른 컴퓨터에서 마찬가지로 selenium-server-standalone을 다운받아 준 후, 위와 같은 커맨드를 한다. 다만 아래 커맨드로 수정해야합니다.
-role WebDriver -hub {hub ip} {-port}(port 5566?)
노드로 등록하는 것.

hub의 ip를 입력하고 포트는 임의의 포트를 지정해준다. 기본 5566이면 될지도?
(위 예시는 로컬에서 실행할 때의 예시이므로, grid용 서버를 운용하는 회사라면 ip와 port가 이미 정해져있을 것입니다...!!)


http://192.168.3.2:4444/grid/console 에서 노드의 상태를 확인할 수 있습니다.
(ip주소는 실행하는 서버마다 다릅니다.)

  • console

  • register : 등록용


Hub에 Node를 추가했다면 준비가 된 것입니다.
그 다음부터는 node의 driver를 인식시켜야합니다.

  1. Node에 driver를 설치해야합니다.
  2. java -Dwebdriver.chrome.driver=“C:/chromedriver.exe” -jar ~~~
    로 실행해줌. 이때 jar파일과 driver는 같은 폴더에 있는 것이 좋습니다.
    위 커맨드를 노드실행 및 등록할때 같이 해줍니다. 즉, -jar 뒤에 node등록 커맨드를 같이해주면 될 것 같습니다.

DesiredCapabilities Class

Grid를 이용하여 테스트를 할 때는 위 클래스를 이용하여 설정을 해줄 수 있습니다.

    //DesiredCapabilities.

    DesiredCapabilities dc = new DesiredCapabilities();
    dc.setBrowserName(Chrome);
    dc.setPlatform(Platform.WIN10);
    
//Testing remotely.
    WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), dc);

마지막의 url은 hub의 url을 등록해주면 됩니다.

profile
QA Engineer

0개의 댓글