2009-11-30 5 views
3

내 응용 프로그램은 사용자가 응용 프로그램에서 언제 어떻게 행동하는지에 따라 JavaScript에서 많은 계산이 이루어집니다. 이 프로젝트는이 계산이 어떻게 진행되는지에 대한 중요한 정보를 출력하므로 NaN이 들어온다는 것을 쉽게 알아낼 수 있습니다.셀레늄 (자바 스크립트)와의 자바 통신

우리는 테스트를 위해 Selenium (RC with python)을 통합하려고합니다. 프로젝트이지만 파이썬 테스트 케이스에서 콘솔 출력 메시지를 얻을 수 있다면 NaN 또는 오산을 식별 할 수 있습니다.

그래서 Selenium이 이러한 출력을 흡수 할 수있는 방법이 있습니까? (콘솔이없는 환경이 바람직 함)?

그렇지 않은 경우 콘솔 호출을 전환 할 수 있는지 알고 싶습니다. console 변수를 다른 것으로 리바 인딩하여 셀렌이 해당 출력을 가져 와서 파이썬 측에 알릴 수 있습니다. 또는 콘솔이 아니면 다른 방법으로이 작업을 수행 할 수 있습니까?

셀레늄은 waitForElementPresent 등과 같은 명령을 가지고 있습니다.하지만이 중간 계산을 응용 프로그램에 표시하고 싶지 않습니까? 아니면 유일한 방법입니까?

도움을 주시면 감사하겠습니다.

감사합니다.

답변

4

페이지에 대한 JavaScript 호출의 결과를 반환하는 GetEval() 호출이 있습니다. 이 페이지에 자바 스크립트가 있다면 당신은 browserbot 접속하면 페이지에 자바 스크립트 함수를 호출하고 결과를 얻을 수 있습니다

self.assertEqual(selenium.GetEval("this.browserbot.getUserWindow().functionUnderTest().isNaN();"),"false","There was a NaN detected") 

과 같은 작업을 수행 할 수 있습니다. 괜찮은 결과를 얻으면 isNaN()은 false를 반환합니다.

+0

응답 해 주셔서 감사 드리며, getEval의 설명서를 확인했습니다. 그것은 매우 도움이됩니다. 따라서 응용 프로그램에 흩어져있는 콘솔 호출을 통해 인쇄 된 모든 것을 사용할 수는 없습니까? –

+0

자바 스크립트 용 코드에서 콘솔 호출은 여러 브라우저가 반응하는 방식 때문에 나쁜 습관으로 간주됩니다. http://stackoverflow.com/questions/915385/javascript-best-practice-handling-firebug-specific-code – AutomatedTester

+0

배열의 모든 정보를 document.window 내에 저장 한 다음 getEval 및 getUserWindow를 사용하여 모든 정보를 검색 할 수 있습니다.) – Santi

1

JavaScript 함수가 지정된 입력을 사용하여 올바른 계산을 수행하는지 테스트하는 중이라면 페이지에서 JavaScript를 분리하고 JavaScript 테스트를 사용하는 것이 좋습니다. 프레임 워크는 기능을 테스트합니다. Selenium을 사용하여 저수준 코드를 테스트하는 것은 불필요한 오버 헤드가 많습니다. 완전히 렌더링 된 페이지를 사용하지 않으려면 애플리케이션을 서버로 실행해야합니다. 원시 자바 스크립트를 테스트하는 데 의존해서는 안됩니다.

우리는 최근 jsUnit을 사용하여 YUI Test를 사용하여 응용 프로그램을 변환했으며 지금까지 유망했습니다. 우리는 3 분 안에 FireFox와 IE에서 약 150 개의 테스트를 수행합니다. 우리의 테스트는 아직 이상하지 않습니다. Selenium을 사용하여 많은 JavaScript를 테스트합니다. 그러나 일부 UI 테스트를 YUI Test로 옮기면 Continuous Integration 환경에서 많은 시간을 절약 할 수있었습니다.

+0

응답 해 주셔서 감사합니다. YUI를 꼭 확인해 보겠습니다. –

관련 문제