현재 Richfaces 3.0, Seam 2.2 및 JBOSS 6.0이 포함 된 무역 프로젝트를 개발 중입니다. 그리고 우리는 GUI 테스트를 위해 Selenium을 사용하고 있습니다. 셀레늄 테스트에서 콩에 액세스 할 수있는 가능성이 있는지 알고 싶습니다.셀렌 테스트에서 java beans에 액세스 할 수 있습니까?
답변
아니요, 셀레늄과 씨엠립은 완전히 다른 수준의 추상화입니다. Selenium이 웹 브라우저에서 작동하는 동안 Seam beans는 JBoss 서버에서 실행됩니다.
내부에서 응용 프로그램을 어떻게 든 제어하려면 Selenium 테스트를 통해 액세스 할 수있는이 빈에 대한 인터페이스를 제공해야합니다. 예를 들어 일부 작업을 웹 서비스 또는 JMX bean으로 노출하고 Java로 작성된 경우 Selenium 테스트 스위트에서 액세스 할 수 있습니다.
그러나 이것이 최선의 방법은 아닙니다. 셀렌 테스트는 사용자 인터페이스 (종단 간) 수준에서만 작동해야합니다. 응용 프로그램 내부에 수동으로 액세스하는 것이 아니라 사용자 인터페이스를 통해서만 응용 프로그램을 설정하십시오.
업데이트 : 일반적인 설치 (사용자, 제품 등)가있는 경우 일반 배포 인프라의 일부로 데이터베이스에 추가하십시오. 그런 다음 사용자 생성/수락, 제품 추가 등을위한 단일 테스트를 수행 한 다음 데이터베이스에 이미 존재하는 일반 사용자를 재사용하기 만하면됩니다.
기술적으로 콩에 대한 셀렌 가시성을 허용하지 않고 그 위에서 메소드를 직접 호출하는 것을 막을 수있는 방법은 없습니다. 그러나, 좋은 디자인 연습이되지 않을 것입니다. Selenium은 (GUI를 통해) 대부분의 응용 프로그램의 동작을 테스트하기위한 것이므로 bean 수준과 관련되어서는 안됩니다. 어쩌면 우리가 왜 그렇게해야 할지도 모르는 유스 케이스를 줄 수 있다면 말이 될 것입니다.
과거에는 QA 사람들이 응용 프로그램의 특정 부분을 테스트하는 바로 가기 인 셀레늄을 통해 웹 서비스와 JDBC 테스트를 공개했습니다. 그렇다면 웹 서비스를 통해 테스트하는 것이 가장 좋습니다. Tomasz 언급했다.
응답 해 주셔서 감사합니다. 이 유스 케이스는 내 질문에 '우리가 무역 신청서를 가지고있다'고 생각할 때 생각하게한다. 그리고 회사는 우리 자신을 등록합니다. 관리자 역할을 맡은 사용자가이를 확인합니다. 확인 후 사용자는 로그인 할 수 있으며 사용자는 애플리케이션이 수행하는 작업을 수행 할 수 있습니다. 확인 된 사용자에 대한 모든 테스트 케이스에 대해 사용자가 먼저 로그인해야하므로 테스트 시간이 길어집니다. (로그인은 각 테스트마다 10-20 초 사이에 있습니다.) 그러면 Seam Tests와 같이이 단계를 건너 뛸 수 있다고 생각하게 만듭니다. –
분명한 사실을 알릴 위험이 있습니다. 왜 각 테스트 케이스가 시작될 때 처음 로그인해야합니까? 한 번 로그인하면 테스트를 리팩토링 할 수 있습니까? 또한 또 다른 전략은 테스트 환경에서 로그인 조작을 "모의 (mock)"하는 것입니다 (백엔드에서 가짜 컨트롤러를 사용하거나 그런 식으로). –
"각 테스트"문제를 바로 수정합니다. 각 테스트가 아닙니다. 확인 된 사용자 작업 테스트 용입니다.우리는 이미 양복을 썼지 만, 양복을 입은 검사를 위해서? –
- 1. 셀렌 : 코딩없이 다른 테스트에서 참조 할 수 있도록 하나의 명령에 여러 명령을 결합 할 수 있습니까?
- 2. ApplicationContext.xml의 java 변수에 액세스 할 수 있습니까?
- 3. JerseyTest에서 Spring beans에 접근하기
- 4. 셀렌 테스트에서 마우스 오른쪽 버튼을 클릭하는 방법
- 5. 테스트에서 일시적인 필드를 모의 할 수 있습니까?
- 6. 스프링 MVC 포틀릿 : 루트 컨텍스트의 포틀릿 컨텍스트에서 beans에 액세스
- 7. 셀렌 스크립트를 어떻게 평범한 자바 스크립트로 변환 할 수 있습니까?
- 8. Java 클래스에 액세스 할 수 없습니다.
- 9. xml을 액세스 할 수 있습니까?
- 10. CXX 테스트에서 C++ 함수에 액세스
- 11. 순수 자바에서 BDB에 액세스 할 수 있습니까?
- 12. 셀렌 테스트에서 javascript 오류로 인해 빌드 시스템이 멈추지 않도록하려면 어떻게해야합니까?
- 13. JUnit 테스트에서 POP3 계정에 액세스
- 14. NUnit 테스트에서 SessionState에 액세스 할 수 있습니까? NUnit를 테스트 내 방법
- 15. VS2005로드 테스트에서 사용 가능한 브라우저를 업데이트 할 수 있습니까?
- 16. Rails의 테스트에서 조명기를 어떻게 업데이트 할 수 있습니까?
- 17. Django 테스트에서 조명기 데이터를로드 할 수 없습니다.
- 18. C# 셀레늄 테스트에서 HttpOnly 쿠키를 삭제할 수있는 방법이 있습니까?
- 19. 단위 테스트에서 ALAssetsLibrary를 어떻게 사용할 수 있습니까?
- 20. 셀렌 2.0 확장 모음이 있습니까?
- 21. 파라메터와 셀렌
- 22. 셀렌 웹 드라이버 및 셀렌 RC
- 23. 현재 컨트롤러에 정적으로 액세스 할 수 있습니까?
- 24. EJB 모듈에서 HttpSession에 액세스 할 수 있습니까?
- 25. Fullcalendar는 얼마나 액세스 할 수 있습니까?
- 26. 익명 함수로 함수에 액세스 할 수 있습니까?
- 27. 데이터베이스 액세스 코드를 인라인 할 수 있습니까?
- 28. UIView는 UIViewController의 속성에 액세스 할 수 있습니까?
- 29. api_key없이 Facebook API에 액세스 할 수 있습니까?
- 30. ADO를 통해 WMI에 액세스 할 수 있습니까?
OP는 봄 콩에 대해 묻지 않습니다. 나는 그가 POJO에 대해 이야기하고 있다고 생각합니다. –
Ashkan Aryan 전제가 여전히 정확합니다. Selenium은 브라우저 UI 테스트를하고 있으며 서버 (및 Bean)와 직접 상호 작용해서는 안됩니다. –
@James DW 네, 맞습니다. 저는 스프링이 여기에 섞여 있지 않다는 것을 지적하면서 제 대답 (아래 참조)에서 똑같이 지적했습니다. –