2017-02-27 14 views
0

Capybara (Ruby) + SitePrism + ChromeDriver로 작성된 테스트가 있습니다.Capybara and Siteprism : 로딩에서 요소 무시

일부 테스트에는 매우 느린 로딩 iframe이 있고 Net :: ReadTimeout 예외로 인해 테스트가 실패하는 페이지가 있습니다.

나는 더 오래 기다리는 시간 제한을 늘릴 수 있다는 것을 알고 있지만 큰 요인으로 테스트의 총 실행 시간을 늘릴 수 있습니다.

또한 iframe 자체에 대해서는별로 신경 쓰지 않고 해당 페이지의 나머지 요소에 대해서만 설명합니다.

카피 바라에게 iframe로드를 기다리지 말라고 말할 방법이 있습니까?

그럴 수 없다면 미리 정의 된 시간을 기다려야하며 그 시간이 만료되면 실제 브라우저에서 이스케이프 버튼을 누르는 것과 같은 정지 페이지로드를 시뮬레이트 할 수 있습니까?

답변

1

셀렌 드라이버를 사용할 때 이와 같은 문제에 대한 가장 깨끗한 해결책은 puffing-billy https://github.com/oesmith/puffing-billy과 같은 프로그래밍 가능한 프록시를 사용하여 요청을 차단하고 오류 또는 정적 내용을 반환하는 것입니다. Poltergeist 또는 capybara-webkit을 사용하는 경우 동일한 작업을 수행하기 위해 화이트/블랙리스트 지원을 사용할 수 있습니다.

+0

우리가 우리 문제에 대한 해결책을 찾고있는 동안, 나는 잠재적 인 문제로 부풀어 오를 것입니다. 불행히도 추가 라이브러리를 사용할 수 없습니다. 같은 것을하는 비 청정한 방법에 대한 몇 가지 예를 들려 주시겠습니까? – Alex

+0

@Alex 자신 만의 프록시 코드를 작성하고, 타임 아웃을 높이고, 테스트 모드에서 페이지 소스를 수정하여 프레임을로드하지 않도록합니다. 모두 잘못된 솔루션입니다. Puffing-billy는 더 나은 성능 테스트를 작성하는 데 도움이되는 도구이며 프로덕션 환경에 추가 라이브러리를 추가하지 않는 정책을 완전히 이해하는 동안 테스트 환경에 유용한 도구를 추가하지 못하도록하는 정책은 다소 미친 것입니다. –

+0

전적으로 당신에게 동의하지만, 불행히도 저를 바꾸기 위해 할 수있는 일이별로 없습니다! 나는 증가 된 페이지로드 시간 초과로 끝났다. – Alex