2014-04-10 5 views
3

셀레늄 그리드에서 테스트를 실행하고 있습니다. 일반적으로 테스트를 병렬로 실행하는 5 대의 시스템입니다. 일관성이없는 이상한 오류가 나타납니다. 예를 들어 약 600 회 반복되는 테스트 중 하나는 아래의 3 가지 오류 중 0-50으로 끝납니다. 번호는 실행할 때마다 다릅니다. 각 예외에 대해 실패한 행은 항상 동일합니다. BaseTest에일관성이없는 Selenium Grid 오류

  1. org.openqa.selenium.UnsupportedCommandException: Command duration or timeout: 65.91 seconds com.web.test.library.BaseTest.openUrl(BaseTest.java:45)

    호선 45 : remoteDriver.get(url);

  2. org.openqa.selenium.WebDriverException: Error forwarding the new session Error forwarding the request Read timed out Command duration or timeout: 134.11 seconds com.web.test.utility.DriverFactory.generateDriver(DriverFactory.java:46)

    선 # 46에서 DriverFactory : WebDriver driver = new RemoteWebDriver("my hub url here", capabilities);

  3. org.openqa.selenium.WebDriverException: Unable to bind to locking port 7054 within 45000 ms com.web.test.utility.DriverFactory.generateDriver(DriverFactory.java:46)

    0,123,516 DriverFactory에서

    라인 # 46 : 나는 온라인으로 이러한 오류를 검색 할 때이 오류가 모든 테스트를 중지 할 때 WebDriver driver = new RemoteWebDriver("my hub url here", capabilities);

는 수정 만 도움이됩니다. 나는 이것이 일관되게 일어나지 않을 때 아무 것도 못 찾는다. 예를 들어, # 1에서 찾은 수정 프로그램은 호스트 파일을 편집해야합니다. 나는 그것이 ~ 95 %의 시간 동안 작동하기 때문에 그것이 나의 경우에 문제라고 생각하지 않는다.

답변

2

여러 스레드를 사용하여 병렬 테스트를 수행하고 있습니다.

그런 경우라면 ThreadGuard을 살펴 보는 것이 좋습니다. Webdriver 스레드를 안전하게 만드는 가벼운 솔루션입니다.

그래도 작동하지 않는다면 너무 많은 나가는 연결을 시도하는 네트워킹 과부하 문제가 발생한다고 생각합니다. 그런 문제를 해결하는 방법, 나는 모른다.

+0

감사합니다. Nathan. 나는 그것을 조사 할 것이다. 당신은 여러 스레드와 병렬로 테스트를 실행하는 것이 맞습니다. – Ryan

+0

@ l3v 그 이후로 오랜 시간이 지난 것을 알고 있습니다 만, 문제를 해결할 수있는 기회가 있습니까? 솔루션을 조금이라도 공유 할 수 있습니까? – YAAK

+0

@YAAK 해결책이 없습니다. 나는 그것을 어떻게 제거했는지 기억이 안납니다. 기억 나면 FirefoxDriver에서 이러한 현상이 발생했다고 생각합니다. ChromeDriver를 주로 사용하기 시작했습니다. 위에서 언급 한 것처럼 ThreadGuard도 사용합니다. – Ryan