2016-11-21 3 views
0

나는 오이 틀을 아주 좋아합니다. Java로 오이를 사용하여 로그인 시나리오를 자동화하고 있습니다. 단계 정의 파일오이에 후크를 사용하는 방법?

enter image description here

그리고 다음입니다 - -

enter image description here

내가 모든 시나리오 (같은 구현 방법) 및 tearDown() 전에 한 번 setUp() 방법을 실행하기 위해 원에 이어 제 기능 파일입니다 모든 시나리오 후에 방법. 나는 오이 @Before@After 후크를 사용했습니다. 올바른 방법이 아닐 수도 있습니다.

하지만 이전에 사용하지 않은 것과 같은 결과가 나타납니다. 네 개의 시나리오 모두에 대해 하나씩 브라우저 인스턴스를 하나씩 열고 실행합니다. 하나의 브라우저 인스턴스 (모든 시나리오에 대해 한 번 setUp() 메서드 호출)를 사용하여 이러한 모든 시나리오를 실행할 수있는 방법이 있습니까?

답변

1
@Before 
public void setup() { 
    if (driver == null) { 
     ...//What you have 
    } 
    driver.manage().deleteAllCookies(); 
} 

시작하려면 @After 후크에서 브라우저를 닫지 마십시오.

+0

오이는 각 시나리오에 대해 단계 정의 및 후크 클래스의 새로운 인스턴스를 생성합니다. 따라서 드라이버 변수는 항상 처음에는 null입니다. – Grasshopper

+0

당신이 그것을 정적으로 만들지 않으면 .... – MikeJRamsey56

+0

@ 그라스 호퍼 나는 항상 이것을한다. 지형지 물 파일의 마지막 시나리오에는 @quit 태그가 있습니다. '@After ("@quit") public void browser_quit() {driver.quit;} – MikeJRamsey56

0

시나리오간에 공유되는 모든 웹 디스크가 필요하며 모든 시나리오가 실행될 때까지 닫히지 않습니다. webdriver 인스턴스를 정적 ​​변수에 저장하고 인스턴스에 종료 훅을 추가하여이 작업을 수행 할 수 있습니다. 당신은 PicoContainer과 같은 DI 컨테이너와 함께 사용하는 경우 SharedWebDriver

당신이 생성자에서 드라이버를 삽입 할 수 -

는 당신에게 이러한 드라이버 클래스를 제공 이것 좀 보라. 그렇지 않으면 인스턴스를 만들 수 있습니다.

또한 여러 로그인 시나리오를 요약하려면 ScenarioOutline을 살펴 봐야합니다.

관련 문제