셀레니엄(Selenium)은 웹서비스를 테스트하기 위해 사용하는 오래된 자동화도구입니다.
웹서비스를 테스트하기 위해서는 웹브라우저를 사람대신 작동하게 해서 접속하고 클릭하고 페이지를 이동하는 등의 작동을 시키고 결과를 본 후에 제대로 작동하는지 측정합니다.
이걸 위해서 필수적으로 3가지가 필요합니다.
- 웹브라우저
- 웹브라우저를 자동으로 핸들링하는 웹드라이버
- 웹드라이버를 핸들링하기 위한 컴퓨터언어와 패키지
셀레니엄은 위에서 3번째것을 지원합니다.
웹브라우저와 웹드라이버는 웹브라우저를 만드는 곳에서 제공합니다.
셀레니엄의 용도
웹서비스가 제대로 작동하는지 화인하는데 씁니다.
데이터를 크롤할 때 씁니다.
데이터클 크롤할 때 셀레니엄을 쓰는 이유는 Javascript를 사용해서 동적으로 콘텐츠를 디스플레이하는 사이트때문입니다.
이런 사이트의 데이터를 크롤하려면 접속하는 웹클라이언트에 자바스크립트를 구동시키고 화면을 렌더링할 수 있는 엔진이 있어야 하는데, 이게 쉽게 만들 수 있는 물건이 아닙니다.
그래서 기존의 웹브라우저를 자동화해서 움직이게해서 테스트 용도로 사용하게 하는 방법이 생겨났는데 그중에 가장 오래되고 유명한 것이 셀레니엄입니다.
그리고 이런 사이트의 데이터를 자동으로 가져가기 위해서 역시 셀레니엄을 쓰게 됩니다.
셀레니엄의 단점
구동하게 하기 위해서 자원을 많이쓰는 웹브라우저를 사용해야합니다.
쉡게 말하면 셀레니엄은 매우 무겁습니다.
셀레니엄의 장점
앞서 말했듯이 셀레니엄을 쓰면 동적 생성되는 콘텐츠를 테스트하거나 크롤할 수 있습니다.
React나 Vue.js 같은 것들로 만들어진 웹페이지에도 쓸 수 있습니다.
셀레니엄 그리드는 뭔가?
- 셀레니엄을 설치하면 여러가지 이상한 패키지를 서버 또는 랩탑에 설치해야 합니다
- 그리고 그냥 쓰게 되면 서버의 자원을 순간적으로 많이 쓰게 됩니다.
- 쓰고나면 찌꺼기 파일을 많이 만들어 놓습니다
그래서 셀레니엄을 여러 서버에 미리 설치해서 클러스터를 만들어놓고 그걸 필요할때 가져다 쓸 수 있습니다.
그런 환경을 만들어 주는 것을 셀레니엄 그리드입니다.
아래 사이트에서 설치법을 볼 수 있습니다. 비교적 쉽습니다.
https://www.selenium.dev/documentation/grid/
그리고 셀레니엄 서버라는 것이 예전에 존재했었는데 그 후속으로 나온 버전이 셀레니엄 그리드입니다.
셀레니엄 그리드의 장점
- 차원이 더 필요할 때 수평 확장이 쉽습니다.
- 자원을 효율적으로 사용할 수 있습니다.
- 여러 서버가 셀레니엄 그리드 클러스터로 부터 필요할 때 자원을 가져다 쓰기 때문입니다