우리는 전방위 웹 UI 테스트를 수행 할 수 있도록 Selenium과 ChromeDriver를 사용하여 테스트 팩의 일부로 페이지로드/상호 작용을 자동화하고 있습니다.Selenium Server 및 ChromeDriver를 Windows 서비스로 실행
이것은 (개발자의 로컬 컴퓨터에서) 개발자 테스트 중에 예상대로 동작하지만 계속적인 통합 빌드의 일부로 이러한 검사를 수행하는 데 어려움을 겪고 있습니다.
서버 플랜트는 * NIX 기반이며 모든 CI 인프라가이 시스템에서 실행됩니다. Windows에서 Chrome을 테스트 할 수 있도록 (우리의 전달 메커니즘), 우리는 Selenium Grid를 구성했습니다. CI 테스트가 실행되면 테스트를 수행 할 Windows 노드를 찾기 위해 그리드에 액세스합니다.
우리는 이러한 테스트를 실행하기 위해 전적으로 제공된 Windows 데스크톱을 가지고 있습니다. 여기에는 Windows 7의 표준 엔터프라이즈 빌드가 포함되어 있습니다.이 컴퓨터는 IT 부서의 업데이트 정책에 따라 주기적으로 재부팅됩니다.
Selenium 서버가 항상 실행되도록하기 위해 "노드"모드에서 실행되는 Selenium Server를 Windows 서비스로 추가했습니다. Selenium Server는 시뮬레이션 된 사용자 상호 작용을 호출하기 위해 ChromeDriver를 시작하도록 구성됩니다.
그러나 CI에서 테스트를 실행하면 시간 초과로 인해 실패합니다. 우리의 작업 이론은 서비스를 실행하는 시스템 사용자가 대화식 창을 만들 수 없다는 것입니다. 웹 검색을 통해 "세션 0"문제에 대한 언급이 제기되었지만 앞으로 나아갈 방법에 대한 건설적인 조언은 거의 없었습니다.
대화 형 세션에서 수동으로 Selenium Server 프로세스를 시작하는 것은 실제 테스트 회귀가 아닌 인프라 문제로 인해 실패한 취성 테스트로 이어 지므로 실행 가능한 솔루션이 아닙니다.
시스템을 재부팅 할 때마다 Windows 서비스를 통해 시작된 인스턴스가 Chrome 인스턴스를 시작할 수 있습니까?
세션 0에서 작동하는 특정 버전의 Chrome이 있습니까? 제가 단순히 다운 그레이드 할 수 있다면, 이것은 선택 사항이 될 것입니다. – jwa
38 이전 버전의 Chrome에서는 모든 것이 Windows 서비스로 정상적으로 작동합니다. 38 버전부터 - 셀렌과 함께 내 윈도우 서비스가 작동하지 않습니다. 다운 그레이드 크롬 해결 된 문제 – razon
@razon이 무엇을 말하고 있는지 확인할 수 있습니다. Chrome 37은 서비스가 실행 중일 때 작동하는 마지막으로 알려진 버전입니다. –