2011-09-15 4 views

답변

1

아니요, 셀레늄과 씨엠립은 완전히 다른 수준의 추상화입니다. Selenium이 웹 브라우저에서 작동하는 동안 Seam beans는 JBoss 서버에서 실행됩니다.

내부에서 응용 프로그램을 어떻게 든 제어하려면 Selenium 테스트를 통해 액세스 할 수있는이 빈에 대한 인터페이스를 제공해야합니다. 예를 들어 일부 작업을 웹 서비스 또는 JMX bean으로 노출하고 Java로 작성된 경우 Selenium 테스트 스위트에서 액세스 할 수 있습니다.

그러나 이것이 최선의 방법은 아닙니다. 셀렌 테스트는 사용자 인터페이스 (종단 간) 수준에서만 작동해야합니다. 응용 프로그램 내부에 수동으로 액세스하는 것이 아니라 사용자 인터페이스를 통해서만 응용 프로그램을 설정하십시오.

업데이트 : 일반적인 설치 (사용자, 제품 등)가있는 경우 일반 배포 인프라의 일부로 데이터베이스에 추가하십시오. 그런 다음 사용자 생성/수락, 제품 추가 등을위한 단일 테스트를 수행 한 다음 데이터베이스에 이미 존재하는 일반 사용자를 재사용하기 만하면됩니다.

+0

OP는 봄 콩에 대해 묻지 않습니다. 나는 그가 POJO에 대해 이야기하고 있다고 생각합니다. –

+0

Ashkan Aryan 전제가 여전히 정확합니다. Selenium은 브라우저 UI 테스트를하고 있으며 서버 (및 Bean)와 직접 상호 작용해서는 안됩니다. –

+0

@James DW 네, 맞습니다. 저는 스프링이 여기에 섞여 있지 않다는 것을 지적하면서 제 대답 (아래 참조)에서 똑같이 지적했습니다. –

0

기술적으로 콩에 대한 셀렌 가시성을 허용하지 않고 그 위에서 메소드를 직접 호출하는 것을 막을 수있는 방법은 없습니다. 그러나, 좋은 디자인 연습이되지 않을 것입니다. Selenium은 (GUI를 통해) 대부분의 응용 프로그램의 동작을 테스트하기위한 것이므로 bean 수준과 관련되어서는 안됩니다. 어쩌면 우리가 왜 그렇게해야 할지도 모르는 유스 케이스를 줄 수 있다면 말이 될 것입니다.

과거에는 QA 사람들이 응용 프로그램의 특정 부분을 테스트하는 바로 가기 인 셀레늄을 통해 웹 서비스와 JDBC 테스트를 공개했습니다. 그렇다면 웹 서비스를 통해 테스트하는 것이 가장 좋습니다. Tomasz 언급했다.

+0

응답 해 주셔서 감사합니다. 이 유스 케이스는 내 질문에 '우리가 무역 신청서를 가지고있다'고 생각할 때 생각하게한다. 그리고 회사는 우리 자신을 등록합니다. 관리자 역할을 맡은 사용자가이를 확인합니다. 확인 후 사용자는 로그인 할 수 있으며 사용자는 애플리케이션이 수행하는 작업을 수행 할 수 있습니다. 확인 된 사용자에 대한 모든 테스트 케이스에 대해 사용자가 먼저 로그인해야하므로 테스트 시간이 길어집니다. (로그인은 각 테스트마다 10-20 초 사이에 있습니다.) 그러면 Seam Tests와 같이이 단계를 건너 뛸 수 있다고 생각하게 만듭니다. –

+0

분명한 사실을 알릴 위험이 있습니다. 왜 각 테스트 케이스가 시작될 때 처음 로그인해야합니까? 한 번 로그인하면 테스트를 리팩토링 할 수 있습니까? 또한 또 다른 전략은 테스트 환경에서 로그인 조작을 "모의 (mock)"하는 것입니다 (백엔드에서 가짜 컨트롤러를 사용하거나 그런 식으로). –

+0

"각 테스트"문제를 바로 수정합니다. 각 테스트가 아닙니다. 확인 된 사용자 작업 테스트 용입니다.우리는 이미 양복을 썼지 만, 양복을 입은 검사를 위해서? –

관련 문제