2013-09-04 4 views
0

저는 셀렌 웹 드라이버에서 프로그램을 작성했습니다. 그러나 다음 프로젝트에서는 더 나은 프로그래밍 기술을 사용하여 유지 보수성을 높이고 싶습니다. 내가 집중하고자하는 주요 부분은 브라우저를 한 번 (1 세션) 실행하고 10 개의 다른 테스트를 실행 한 다음 브라우저를 닫는 것입니다. 그러나이 작업을 수행하는 방법을 잘 모르겠습니다. JUnit을을이 내가 현재 내 프로젝트가 배치 어떻게되어 사용 :하나의 브라우저 세션에서 여러 개의 JUnit 테스트

package example1; 
public class TestBase { //main class 

@Before 
public void setup() { 
//launch browser 
} 

@Test //all test run here 
public void test1(){ 
login(); 
homepage(); 
} 

@After 
public void teardown(){ 
//close browser 
} 
} 

package example1; 
public class login(){ 
//do some action 
} 

package example1; 
public class homepage(){ 
//do some action 
} 

package example1; 
public class storeMethods(){ 
//all methods are stored which are then called by different classes 
} 

내가 @Test 주석도 메인 클래스에 있어야 잘 모르겠어요하거나 자신의 클래스에 있어야하는 경우 (로그인() , homepage()). 왜냐하면 나는 어딘가에서 테스트가 서로 의존해서는 안되기 때문이다. 나는 자바에 많은 경험이 없지만 배우려는 것 이상이다. 모범 사례와 좋은 유지 보수 가능한 테스트를 작성하는 방법에 대한 지침이 필요합니다. 누군가가 나를 도와 주거나 올바른 방향으로 나를 가리키면 정말 고맙습니다.

+2

첫 번째 것은 @ Test 주석입니다. 일반적으로 단일 테스트 사례를 만드는 데 사용됩니다. 하지만 네, 하나의 자바 파일에 여러 개의 @Test 주석을 가질 수 있습니다. 이 경우에는 @ Before와 @ After를 사용하여이 작업을 수행 할 수 있습니다. 그 외에는 @ Test 주석이있는 여러 개의 Java 파일이있는 경우 @ BeforeClass 및 @ AfterClass를 사용할 수 있습니다. @ Beforeclass는 다른 테스트 클래스보다 먼저 실행되고 @ AfterClass는 모든 테스트 클래스 실행 후에 실행됩니다. @ BeforeClass에서 브라우저를 열고 @ AfterClass에서 닫습니다. 그 사이에 브라우저가 충돌하면이 시나리오도 처리해야합니다. – Vinay

답변

1

를 사용하여보고, 브라우저를 재사용하는 것은 좋은 생각이 아니다, 당신은 당신의 전반적인 목표는 유지 보수라고 말했다.

유지 관리 가능성을 높이기 위해 찾은 기술은 페이지 개체 패턴과 상호 작용하는 별도의 기능입니다.

페이지 객체 패턴은 나머지 코드와 셀렉터를 구분합니다. 이렇게하면 페이지의 요소가 변경되고 테스트에서 해당 요소를 5 번 사용하면 코드가 1 개만 변경됩니다. isLoaded()를 포함시키는 것도 표준입니다. isLoaded()는 필요한 페이지에 이미 있는지 여부를 식별하는 데 사용할 수있는 함수이므로 페이지를 다시로드하지 않습니다.

작성한 페이지를 직접 테스트하지 않는 것이 좋습니다. X 페이지로 이동하는 데 사용해야하는 툴바가있는 경우 도구 모음이 변경되어 원하는 링크가 하위 메뉴에 있었으므로 테스트에서 링크를 사용할 때마다 해당 링크를 클릭하는 방법을 변경하십시오. 페이지와 상호 작용하는 일련의 셀렌 명령을 작성하면 테스트를 높은 수준으로 쉽게 읽을 수 있습니다.

1

브라우저 재사용이 더 나은 자동화 프로그래밍 방법을 따르지 않는 것이 좋습니다.

브라우저를 다시 사용하면 테스트 간 종속성으로 불안정하고 신뢰할 수없는 테스트가 발생합니다.

내 견해로는 원자 자기 시험을하는 것이 훨씬 낫습니다. 테스트 런타임이 문제가되는

경우 로비웨어 햄가 올바른 말을하는 동안, 다음 병렬 및 셀레늄 그리드

관련 문제