Selenium으로 HTTP 응답 헤더를 검사하는 가장 좋은 방법이 필요합니다. 나는 Selenium 문서를 둘러 보았고 그것을 할 수있는 직접적인 방법을 찾지 못했다. 도움말은 높이 평가됩니다.Selenium으로 HTTP 응답 헤더를 검사하는 가장 좋은 방법
답변
저는이 질문에 대해 StackOverflow에서 몇 번 대답했습니다. 내 이전 대답을 검색하여 그것을 파헤 치십시오. ProxyHandler와 SeleniumServer를 확장하는 사용자 정의 Java 코드를 작성해야하는 핵심입니다. 또한 AFTER 1.0 베타 2의 릴리스를 사용해야합니다. 이유를 물어 본 사람은입니다. 많은 이유가 있습니다. 필자의 경우, AJAX 무거운 앱을 테스트하고 있으며 일이 잘못 될 경우 가장 먼저 디버깅하는 것은 네트워크 와이어입니다. 이는 AJAX 호출이 발생했는지 여부를 확인하는 데 도움이되며, 그렇다면 응답이 무엇인지 알 수 있습니다.우리는 실제로이 정보를 수집하고 스크린 샷과 함께 모든 셀렌 테스트를 캡처합니다.
Selenium (Selenium RC가 아님)을 사용하여 이것을 처리 한 이유는 HTML 테스트를 JSP로 변환 한 다음 헤더를 읽거나 자바 스크립트 (셀레늄은 자바 스크립트)가 할 수없는 모든 작업을 수행 할 필요가있는 곳에서 Java를 활용하는 것이 었습니다 .
아마도 셀렌을 어떻게 사용할 계획인가에 대한 몇 가지 정보를 줄 수 있을까요?
Selenium RC 용 Ruby 드라이버를 사용하고 있습니다. HTML 테스트를 JSP로 변환하는 것에 대한 의미를 따르는 지 확신 할 수 없습니다. 내가 테스트하고있는 사이트는 .Net으로 작성되었지만 접근 방식에 차이가 있다고 상상할 수는 없습니다. 그래서 헤더를 가로채는 방법이 있습니다. – globulus
이 유형의 테스트에서는 Selenium을 사용하지 않을 것이므로 다른 도구로 다양한 테스트 문제를 해결할 것을 제안합니다. 우리가 할 것은 :
를 사용하여 단위 테스트 코드에 대한 테스트 : 방법 및 클래스
통합 테스트는 응용 프로그램 구성 요소가 함께 걸어 방식을 테스트하는
Canoo WebTest에 같은 간단한 기능 테스트 프레임 워크 (또는 일부 상당)을 사용하여 Http 캐시 헤더, 기본 페이지 구조, 단순 리디렉션 및 쿠키 설정/값 등을 지정합니다.
페이지의 유효성을 보장하는 주문 된 테스트 W3C 표준
JSunit는
그것의 가치가 보내는 시간이 다 파괴 해당 페이지에 자바 스크립트 클래스와 우리가 UI 기능/동작을 테스트 할
셀레늄을 생성 방법과 자바 스크립트 의 통합을 테스트 Selenium 만 사용하면 문제가 발생할 수 있기 때문에 이러한 다양한 도구를 사용하여 시스템의 여러 측면을 테스트해야 할 책임은 다음과 같습니다.
- 제품군이 클수록 실행 속도가 느립니다. 실제로 셀레늄 그것은 잘 작동/기능 테스트를 처리하지만, 그럼에도 불구하고 XPath의 취성 수 있으며
- 보통 당신에게 설치 '을 필요로 유지하기 위해 시간과 노력의 양을 증가 필요할 수 있습니다
- 언급 본질적으로 느린 다른 도구에 비해 그대로 경우 - 진짜 생활 '(지저분 할 수있는 시간이 많이 소요) 사용자 시나리오를 단계별로
는 또한 몇 가지 기술이있다 당신의 앱 데이터 - 당신이 또는 건너하지 않을 수 있습니다 -하는 당신은 셀레늄 테스트 more resilient을 만드는데 사용할 수 있습니다.
DefaultSelenium의 captureNetworkTraffic() API는 http 요청/응답 헤더를 캡처하므로 html/xml/plain 형식으로 액세스 할 수 있습니다.
Selenium s = new DefaultSelenium(...);
s.start("captureNetworkTraffic=true");
s.open("http://www.google.com");
String xml = s.captureNetworkTraffic("xml"); // html, plain
s.stop();
이 방법은 셀렌 2에서 지원되지 않는다. java.lang.UnsupportedOperationException : captureNetworkTraffic'을 얻고있다. –
셀레늄에서 HTTP 응답 헤더를 테스트하는 것은 매우 유용 할 수 있다는 것을 나에게 보인다
다음은 샘플 코드입니다. 100 %의 경우는 아니지만 ... 아마도 확실합니다. 일련의 페이지를 체크 아웃하는 경우, 테스트의 일부로 일부 응답 헤더를 테스트하는 것이 유용 할 것 같습니다 (Content-Type 및 Pragma to skap to mind).
글쎄, 우리 회사에서 gzip으로 웹 응용 프로그램의 CSS 및 JS 파일을 압축하고 Selenim이 테스트하려고하기 때문에 HTTP 헤드의 Accept-Encoding 속성에 "gzip"이 포함되어 있는지 확인하고 싶습니다. 각 커밋 후.
나는 Proxoid 프로젝트에의 해 임베디드 프록시를 사용하는 해결 방법을 생각해 냈습니다.
그것의 경량, 여기에 코드를 거기 (BrowserMob 또는 LittleProxy 등)
이 HOWTO를 참조 거의 모든 다른 대안 달리 : http://www.supermind.org/blog/968/howto-collect-webdriver-http-request-and-response-headers
셀레늄의 세션 쿠키를 읽은 후 진짜를 사용 Selenium 외부의 HTTP 라이브러리가 특정 페이지를 요청합니다. 여기
파이썬 코드 :# get session cookies from Selenium
cookies = {}
for s_cookie in self.selenium.get_cookies():
cookies[s_cookie["name"]]=s_cookie["value"]
# request the pdf using the cookies:
response = requests.get(self.full_url('/vms/business_unit/2002/operational_unit/200202/guest/40/bill/pdf/'), cookies = cookies)
self.assertEqual(response.headers["content-type"], "application/pdf")
정확히 당신이 뭘 하려는지
- 1. HTTP 호출에서 http 응답 헤더를 디버그하는 방법
- 2. 레일 : 서버 응답 HTTP 헤더를 얻는 방법?
- 3. HTTP 응답 헤더를 제거하는 기능이 있습니까?
- 4. Heroku에서 호스팅되는 Sinatra 앱에서 HTTP 응답 (캐시) 헤더를 설정하는 방법
- 5. Http-Server 요청 헤더 및 응답 헤더를 생성하는 방법
- 6. 웹 서비스 응답에서 HTTP 응답 헤더를 읽는 방법?
- 7. XMLHttpRequests가 응답 헤더를 캐시합니까?
- 8. URL에서 HTTP 응답 코드를 얻는 가장 좋은 방법은 무엇입니까?
- 9. 자바에서 HTTP 헤더를 보내는 방법
- 10. 후 처리의 가장 좋은 방법 Nginx 역 프록시 응답
- 11. Rebol - HTTP 응답 헤더
- 12. HTTP 응답 분할
- 13. C에서 QueryString 매개 변수의 유효성을 검사하는 가장 좋은 방법 #
- 14. 출력 캐시가 응답 헤더를 고려합니까?
- 15. HTTP 응답 헤더 압축?
- 16. 청크 분할 http 응답 예고편에 위치 헤더를 설정할 수 있습니까?
- 17. HTTP 응답 헤더를 사용하여 CSS를 클라이언트에 보내는 방법은 무엇입니까?
- 18. HTTP 응답 헤더를 압축하는 방법은 무엇입니까? 벨로 시티 2010 컨퍼런스에서
- 19. 왜 Omegle의 HTTP 요청/응답 헤더를 볼 수 없습니까?
- 20. ASP.NET/IIS7 클래식 모드에서 HTTP 응답 헤더를 설정할 수 없습니다.
- 21. PHP에서 특정 HTTP 응답 헤더를 제거하는 방법은 무엇입니까?
- 22. http 응답
- 23. XPCOM : sniff HTTP 응답
- 24. Ruby에서 HTTP 응답 생성
- 25. 헤더를 포함한 전체 HTTP 요청보기
- 26. 원시 HTTP 응답 헤더 받기
- 27. JSP에서 매개 변수의 유효성을 검사하는 가장 좋은 방법은 무엇입니까?
- 28. HTTP 응답 코드
- 29. HTTP 헤더를 반환하는 NSTask
- 30. 자바에서 HTTP 특정 헤더를 제거하는 방법
? Selenium은 브라우저에서 작동합니다. 어떤 특정 정보가 있습니까? – Ben