2012-11-20 3 views
6

필자는 자사의 익스트라 넷 일부에 테스트 커버리지를 적용해야합니다. 우리는 phantom.js/casper.js를 사용하고 있습니다. 테스트 워크 플로우의 나머지 부분과 통합하는 것이 가장 쉽기 때문입니다.Casper.js에서 HTTP와 HTTPS 터널링을 테스트하는 방법은 무엇입니까?

터널링을 통해 HTTP에서 HTTPS로 전환 할 때 문제가 발생합니다. 사용자가 http // www.somecompany.com의 웹 사이트로 이동하여 로그인 링크를 클릭하면 브라우저가 https // extranet.somecompany.com으로 리디렉션됩니다. HTML 소스를 살펴보면 사용자가 리디렉션 된 양식과 정확하게 일치하는 HTML이 표시됩니다.

그러나 casper.js로 워크 플로를 다시 만들려고하면 로그인 링크에서 성공적으로 클릭 이벤트가 시작됩니다. 그런 다음 양식 요소를 식별하여 리디렉션이 성공적인지 확인하지만이 테스트는 실패합니다. 캐스퍼가 "보는 것"을보기 위해 페이지 캡처를 수행하도록 리디렉션 한 후 다음 단계를 수정했습니다. 이미지를 열면 HTML이 전혀 리다이렉트되지 않은 것처럼 보입니다. Fiddler에서 터널이 포트 443에 설정되었음을 보여주는 트래픽이 표시되기 때문에 리디렉션이 작동하고 있음을 알고 있습니다.

SO, google 및 캐스퍼 Google 그룹을 검색했지만 리디렉션과 관련하여 많은 부분을 찾을 수 없습니다. HTTP에서 HTTPS로, Casper/Phantom이 이와 같은 워크 플로우를 자동화 할 수 있습니까? 아니면 Selenium과 같은 것을 봐야합니까?

+2

는 명령 라인에'--ignore-SSL-오류 = yes'를 전달하는 시도 되세요 ? – NiKo

답변

0

리디렉션은 PhantomJS 1.9.8에서 기본적으로 작동합니다. 확실 사용하여 디버깅 주시기 경우

page.onResourceRequested = function(request) { 
    console.log('Request ' + JSON.stringify(request, undefined, 4)); 
}; 
page.onResourceReceived = function(response) { 
    console.log('Response ' + JSON.stringify(response, undefined, 4)); 
}; 
처럼 당신은 당신의 첫번째 응답 STH에서 볼 수

:

"redirectURL": "https//extranet.somecompany.com", 
관련 문제