docker selenium tutorial
Docker Selenium 튜토리얼 소개 :
우리 중 하나에서 논의했듯이 이전 튜토리얼 Selenium 그리드는 다른 운영 체제와 다른 브라우저에서 테스트 케이스를 실행하는 데 도움이됩니다.
그러나 이것은 Docker Selenium 튜토리얼 Docker가 무엇인지, 관련 스크린 샷과 함께이를 다운로드, 설치 및 Selenium 그리드와 통합하는 방법에 대해 자세히 설명합니다.이 그림 표현을 통해 프로세스를 빠르고 쉽게 이해할 수 있습니다.
학습 내용 :
- Selenium Grid는 무엇입니까?
- 셀레늄 그리드 사용의 실제 사례
- Docker 란 무엇입니까?
- Docker Selenium 자습서의 전제 조건
- Windows 용 Docker 다운로드
- Docker 이미지 설치
- Selenium Hub 시작
- Selenium 노드 시작
- 셀레늄 테스트 구성
- 결론
- 추천 도서
Selenium Grid는 무엇입니까?
Selenium 그리드는 슬레이브 머신 (노드)간에 분산 된 테스트 케이스에 대해 컴퓨터 (허브)를 마스터하는 데 도움이됩니다.
한 시스템에서 모든 테스트 케이스를 구현할 때 일부 제한이있을 수 있으며 때로는 단일 시스템이 모든 테스트 케이스를 실행하기에 충분하지 않을 수 있으며 그 시점에 Selenium 그리드가 역할을 수행합니다.
셀레늄 그리드 사용의 실제 사례
2 ~ 3 년 전 중국은 중국에서 Google 제품을 금지했습니다. 당시 중국 용 웹 시스템을 개발 한 일부 다른 회사는 Internet Explorer, Firefox, Opera 등과 같은 Google 제품 (Google 크롬)을 제외한 다른 브라우저로 웹 시스템을 테스트해야했습니다.
그 당시 Selenium 그리드는 Google Chrome을 제외한 다른 브라우저에서 테스트 케이스를 실행하기 위해 Selenium 그리드를 사용했기 때문에 이러한 회사에 매우 유용했습니다.
Docker 란 무엇입니까?
간단히 말해서 Docker는 컨테이너라고 할 수 있습니다. 개발자 또는 Docker 사용자는 데이터베이스, 라이브러리, 종속성과 같은 것을 해당 컨테이너에 넣은 다음 해당 데이터베이스, 종속성 및 라이브러리를 사용하여 애플리케이션을 생성, 배포 및 실행할 수 있습니다.
Docker 컨테이너를 사용하면 데이터베이스, 라이브러리 및 기타 종속성과 같이 해당 애플리케이션을 빌드하는 데 필요한 모든 콘텐츠가 포함 된 소프트웨어 애플리케이션을 설정하고 패키징 할 수 있으며 마지막으로 모두 하나의 패키지로 제공 할 수 있습니다.
일반적으로 Selenium 그리드를 구성하는 동안 여러 가상 머신을 노드로 호스팅해야하며 모든 단일 노드를 허브와 연결해야합니다. 또한 일반 그리드를 설정할 때 Selenium 서버 jar 파일을 다운로드하고 Selenium 그리드를 설정할 각 컴퓨터에서 해당 jar 파일을 실행해야합니다.
이것은 테스터에게 비용이 많이 들고 때로는 시간이 많이 걸리는 작업입니다. 그러나 Docker는 비용 관련 및 시간 소모적 인 문제를 해결하는 데 도움이됩니다.
Docker는 Solomon Hykey에 의해 발명되었으며 2013 년 3 월 오픈 소스 도구로 소프트웨어 산업에 출시되었습니다. 요즘 개발자와 시스템 엔지니어는 여러 가지 이유로 Docker를 사용하고 있습니다.
이 튜토리얼에서는 소프트웨어 테스트 및 소프트웨어 자동화를 위해 Docker를 사용할 것입니다.
Docker Selenium 자습서의 전제 조건
먼저 Selenium 스크립트를 실행할 환경을 설정해야합니다.
다음은 확인해야 할 몇 가지 사항입니다.
- 컴퓨터가 JDK 1.7 이상 버전으로 구성된 경우
- Chrome 및 Firefox 브라우저가 로컬 컴퓨터에 설치되어 있습니까?
- Selenium WebDriver 및 TestNG 기반 테스트 케이스.
- 테스트 케이스를 병렬 테스트로 실행하도록 Testng.xml 파일을 구성했습니다.
Windows 용 Docker 다운로드
다음으로해야 할 일은 Docker 도구 상자를 설치하는 것입니다. Docker 명령을 실행하려면 Docker 도구 상자와 함께 제공되는 Docker 빠른 시작 터미널이 필요합니다. 따라서 Docker 도구 상자를 설치해야합니다.
모든 웹 사이트에서 Docker 도구 상자를 다운로드 할 수 있지만 공식 웹 사이트에서 Docker 도구 상자를 다운로드하는 것이 좋습니다. Docker .
Docker 도구 상자를 설치하는 동안 몇 개의 확인란이 표시되며 설치를 완료하려면 해당 확인란을 모두 선택하고 Docker 도구 상자를 설치해야합니다. 성공적으로 설치 한 경우 다음 세 개의 Docker 도구 상자 아이콘이 표시됩니다.
Docker 도구 상자를 설치 한 후 Docker 빠른 시작 터미널을 두 번 클릭하고 엽니 다. Docker는 IP 주소 : 192.168.99.100으로 기본 머신을 구성하며 처음으로 로컬 머신을 구성하는 데 약간의 시간이 걸립니다. 따라서 다음 창이 나타날 때까지 기다려야합니다.
Docker가 성공적으로 구성되었습니다!
Docker 이미지 설치
Docker없이 Selenium 그리드를 구성하는 동안 Selenium 허브 및 노드 (브라우저)도 구성해야합니다.
Docker를 사용하여 Selenium 그리드를 구성 할 때 일반 그리드처럼 허브 및 브라우저 노드를 Docker 컨테이너에 설치해야하며 나중에 해당 Docker 컨테이너에서 허브와 노드를 시작할 수 있습니다.
따라서 첫 번째 작업은 허브 및 노드 이미지를 Docker에 설치하는 것입니다.
처음에 Docker를 사용하여 테스트를 실행하려면 5 개의 이미지를 설치해야합니다.
- 셀레늄 허브 이미지
- Selenium node-firefox 이미지
- 셀레늄 노드 크롬 이미지
- Selenium node-firefox-debug 이미지
- Selenium node-chrome-debug 이미지
다음 질문은 이미지를 찾는 방법입니다. 그 이미지를 찾기 위해 우리는 Docker 허브 이미지를 이름으로 검색하고 아래와 같이 검색 창에 이미지 이름을 입력 할 수도 있습니다.
이름을 입력하고 엔터를 치면 아래 창을 볼 수 있습니다.
이 창은 Selenium 허브에 대한 모든 이미지 저장소를 보여줍니다. 여기서 가장 많이 끌어온 이미지를 클릭해야하며 오류없이 코드를 실행하는 데 도움이됩니다. 해당 이미지를 클릭하면 아래와 같은 다른 창이 표시됩니다.
최고의 HDD를 SSD로 복제 소프트웨어
(노트 :확대 된 이미지를 클릭하십시오)
이 창은 이미지 (Selenium 허브 이미지)에 대한 모든 정보를 제공하고 해당 이미지 (Selenium 허브 이미지)와 관련된 모든 명령을 제공합니다. 여기에서 Docker pull 명령은 Docker 이미지를 컨테이너에 설치하는 명령입니다.
따라서 처음에는 Selenium 허브 이미지를 설치해야합니다. 이렇게하려면 Docker pull 명령을 복사하여 아래와 같이 Docker 빠른 시작 터미널에 붙여 넣어야합니다.
Docker 빠른 시작 터미널에 각 명령을 입력 한 후 이미지를 Docker 컨테이너로 다운로드 할 수 있도록 잠시 기다려야하며 대기 시간은 네트워크 연결 속도에 따라 완전히 달라집니다. 때때로 일부 이미지는 설치 또는 다운로드 중에 실패 할 수 있으며,이 경우 가장 좋은 방법은 터미널에 설치가 완료된 것으로 표시 될 때까지 해당 이미지를 다시 설치하는 것입니다.
또 다른 중요한 요소는 첫 번째 명령의 다운로드를 완료하기 전에 두 번째 명령을 입력하지 않아야한다는 것입니다. 다운로드와 설치가 모두 실패합니다.
마찬가지로 Docker 컨테이너에서 위에서 언급 한 5 개의 이미지를 모두 검색하고 설치할 수 있습니다.
아래 표는 Quickstart 터미널에 입력하고 설치하는 데 필요한 모든 pull 명령을 보여줍니다.
영상 | 명령 |
---|---|
셀레늄 허브 | 도커 풀 셀레늄 / 허브 |
셀레늄 파이어 폭스 노드 | docker pull selenium / node-firefox |
셀레늄 크롬 노드 | 도커 풀 셀레늄 / 노드 크롬 |
Selenium Firefox 디버그 | docker pull selenium / node-firefox-debug |
셀레늄 크롬 디버그 | 도커 풀 셀레늄 / 노드 크롬 디버그 |
모든 이미지를 컨테이너에 다운로드 한 후 아래 명령을 사용하여 확인할 수 있습니다.
Docker 이미지
이제 모든 이미지가 성공적으로 다운로드되었습니다. 따라서 이러한 이미지를 하나씩 실행할 수 있습니다.
Selenium Hub 시작
Docker가없는 일반 Selenium 그리드에서 첫 번째 단계는 Selenium 허브를 시작하는 것입니다. Docker 컨테이너에서 Selenium 허브를 시작하려면 다음과 같은 특수 명령이 있습니다.
docker run -d -p 4444 : 4444 –name selenium-hub 셀레늄 / 허브
터미널에 해당 명령을 입력하고 입력하면 Selenium 허브가 Docker 컨테이너에서 열립니다. 브라우저에서 다음 링크를 확인하여 Selenium 허브가 시작되었는지 여부를 확인할 수 있습니다. http://192.168.99.100:4444/grid/console
이 이미지에서 192.168.99.100은 IP 주소입니다.
Selenium 노드 시작
Selenium 허브가 시작되고 다음으로 Docker 컨테이너에서 노드를 시작해야합니다. Chrome 노드와 Firefox 노드를 시작해야합니다. 설치 프로세스에서 두 노드 이미지를 Docker 컨테이너에 설치했습니다.
이제 두 노드를 하나씩 시작하겠습니다. 또한 원하는만큼 많은 노드를 실행할 수 있습니다. 여기서는 두 개의 노드 (크롬 노드와 Firefox 노드) 만 사용했습니다.
Docker에서 크롬 노드를 실행하는 명령 : docker run -d –link selenium-hub : hub selenium / node-chrome
Docker에서 firefox 노드를 실행하는 명령 : docker run -d –link selenium-hub : hub 셀레늄 / 노드 -firefox
Chrome 노드와 Firefox 노드를 실행 한 후 Chrome 디버그 노드와 Firefox 디버그 노드도 실행해야합니다. 데모 용으로 크롬 디버그 노드와 Firefox 디버그 노드를 실행하고 설치하며이 튜토리얼의 끝에서 VNC (Virtual Network Computing) 뷰어를 사용하여 두 디버그 노드에서 테스트 케이스를 실행합니다.
VNC 뷰어의 경우 firefox와 chrome의 디버그 노드가 모두 필요합니다. VNC (Virtual Network Computing) 뷰어는 한 컴퓨터에서 동시에 다른 브라우저 동작을 볼 수 있도록 도와줍니다.
Docker에서 크롬 디버그 노드를 실행하는 명령 : docker run -d –P –link selenium-hub : hub selenium / node-chrome-debug
Docker에서 Firefox 디버그 노드를 실행하는 명령 : docker run -d –P –link selenium-hub : hub selenium / node-firefox-debug
때로는 두 명령 모두 Docker 빠른 시작 터미널에서 무시 될 수 있습니다. Docker 빠른 시작 터미널이이 두 명령을 무시하는 경우 아래 명령을 사용하여 크롬 및 Firefox 브라우저의 디버그 모드를 시작할 수 있습니다.
대안 01
docker run –d –P –link selenium-hub : hub selenium / node-chrome-debug
docker run –d –P –link selenium-hub : hub selenium / node-firefox-debug
대안 02
docker run –d –link selenium-hub : hub selenium / node-chrome-debug
docker run –d –link selenium-hub : hub selenium / node-firefox-debug
Chrome 및 Firefox 노드와 Chrome 및 Firefox의 노드와 디버그 노드를 모두 실행 한 후 브라우저를 새로 고칠 수 있으며 컨테이너에서 시작하는 Firefox 및 Chrome 노드를 찾을 수 있습니다.
이미지 설치 또는 실행 프로세스 중에 오류가 발생하는 경우 가장 좋은 방법은 Docker에서 해당 특정 이미지를 다시 설치하고 실행하는 것입니다.
이제 Docker 컨테이너 측의 모든 단계를 완료했습니다. 다음으로 데모를 수행하기 위해 Selenium 스크립트와 VNC 뷰어에주의를 기울여야합니다.
먼저 실행중인 chrome 및 firefox 디버그 노드의 포트 번호를 식별해야합니다. VNC 뷰어에 해당 포트 번호가 필요하기 때문입니다.
크롬 및 Firefox 노드의 포트 번호를 식별하려면 빠른 시작 터미널에 아래 명령을 입력하면 PORTS 열 아래에서 모든 Docker 이미지와 각 이미지의 실행중인 포트를 볼 수 있습니다.
도커 추신-a
노드 | 실행중인 포트 번호 |
---|---|
Chrome 디버그 노드 | 32771 |
Firefox 디버그 노드 | 32772 |
이제 실행중인 크롬 및 파이어 폭스 디버그 노드의 포트 번호를 알고 있으므로 VNC 뷰어를 사용하여 두 브라우저를 모두 시작할 수 있습니다.
이를 위해 아래 단계를 따라야합니다.
1) 공식 사이트에서 VNC 뷰어를 다운로드하십시오. VNC 다운로드
2) 실행
삼) 아래와 같이 각 디버그 모드의 허브 URL과 포트 번호를 입력하고 연결 버튼을 클릭합니다.
허브 URL : 포트 번호
- Chrome 브라우저 192.168.99.100의 경우 : 32771
4) 연결 버튼을 클릭하면 VNC 뷰어가 암호를 묻습니다. 기본적으로 VNC 뷰어의 비밀번호는 비밀 , 암호를 다음과 같이 입력하십시오. 비밀 확인을 클릭하면 크롬 브라우저 창을 볼 수 있습니다.
5) 마찬가지로, VNC 뷰어를 사용하여 Firefox 브라우저에 대해서도 동일한 작업을 수행해야합니다. 로컬 컴퓨터에서 VNC 애플리케이션을 열고 허브 URL과 함께 Firefox 실행 포트 번호를 사용하고 연결 버튼을 클릭합니다.
- Firefox 브라우저 192.168.99.100의 경우 : 32772
다시 Firefox 브라우저를위한 또 다른 창이 열립니다.
이제 두 브라우저가 VNC 뷰어에 표시됩니다. 다음 작업은 셀레늄 스크립트를 작성하고 실행하는 것입니다.
셀레늄 테스트 구성
평소처럼 셀레늄 그리드와 관련된 테스트 스크립트를 만들 수 있습니다. 셀레늄 그리드 스크립트를 만드는 단계는 셀레늄 그리드 튜토리얼 .
다음은 제가 만든 스크립트입니다. 이것은 일반적인 셀레늄 스크립트이고 저는 두 개의 테스트를 만들었고이 테스트의 원하는 기능을 우리가 만든 두 개의 다른 브라우저로 설정했습니다.
또한 테스트를 병렬로 실행하도록 XML 파일을 변경했습니다.
모든 단계를 완료했으며 지금 테스트를 실행할 수 있습니다. 테스트를 실행 한 후 Docker를 사용하여 만든 두 개의 다른 브라우저를 통해 실행되는 테스트를 볼 수 있습니다. VNC 뷰어는 브라우저가 동시에 각 웹 사이트를 탐색하는 방법을 보여줍니다.
결론
많은 테스트 케이스가있는 경우 Selenium 그리드를 사용하여 테스트 케이스 실행 속도를 높일 수 있습니다. 때로는 다른 운영 체제에서 테스트 케이스를 실행하고 테스트해야하며 때로는 다른 브라우저에서도 테스트 케이스를 확인해야합니다. 우리는 이러한 상황에서 Selenium 그리드를 사용합니다.
때때로 Selenium 그리드를 구성하는 것은 여러 대의 시스템이 필요하기 때문에 비용이 많이 들고 시간이 많이 걸리는 프로세스가 될 수 있습니다. 이러한 경우 가장 좋은 방법은 Docker와 함께 Selenium Grid를 사용하는 것입니다.
추천 도서
- Selenium Grid Tutorial : 크로스 브라우저 테스트 설정 및 예
- Cucumber Selenium 튜토리얼 : Cucumber Java Selenium WebDriver 통합
- Selenium WebDriver 소개 – Selenium Tutorial # 8
- 초보자를위한 심층 이클립스 튜토리얼
- 효율적인 Selenium 스크립팅 및 문제 해결 시나리오 – Selenium 자습서 # 27
- 로그로 Selenium 스크립트 디버깅 (Log4j 튜토리얼) – Selenium 튜토리얼 # 26
- 30 개 이상의 최고의 셀레늄 튜토리얼 : 실제 예제로 셀레늄 배우기
- JUnit 프레임 워크 소개 및 Selenium 스크립트에서의 사용법 – Selenium Tutorial # 11