2013-09-05 3 views
2

Facebook에서 통계를 얻으려면 회사 웹 사이트를 방문하십시오. 통계 페이지에 로그인하는 데 Facebook 계정이 사용됩니다. BDD 테스트를 작성했습니다. 테스트는 사이트에 로그인하여 기능을 테스트합니다. 그러나 페이스 북은 (아마도 안전상의 이유로) 자주 로깅하는 것을 허용하지 않는다. 따라서 각 시나리오에 로그인하면 Facebook에서 차단됩니다.Behat Mink에서 시나리오 간 세션 재설정. 무능하게하는 방법?

테스트는 하루에 여러 번 실행됩니다. Facebook 계정은 통계가있는 웹 사이트 로그인 전용입니다.

나는 묻고 싶다. 시나리오간에 리셋 세션을 비활성화 할 수 있습니까? 아니면 다른 해결책입니까?

답변

1

모든 시나리오 후에 세션이 만료됩니다. 그래서 새로운 시나리오 새로운 세션. 그러나 당신이 할 수있는 것은 행동이고 밍크는 배경을 제공합니다. 백그라운드에서 로그인 할 수 있습니다. 그래서 모든 기능 시나리오의 시작에서 로그인 세션이 만들어집니다. 다른

Background: 
    Given I am logged in 

당신이 가장 쉽게 할 수있는 것처럼 그 함수의 이름을보다 당신은 또한 기능의 컨텍스트에서 사용자 로그인 기능을 할 수 있습니다 그래서 당신은 자동으로 모든 시나리오 후 로그인받을

Background: 
Given I fill in "username" with "[email protected]" 
And I fill in "password" with "xyz" 

Scenario: 
    Given I am on homepage 

Scenario: 
    Given I am on "/support" 

입니다.

+0

이 가능성은 알지만, 원하지 않는 것입니다. 각 시나리오가 생기기 전에 로그인하면 페이스 북 계정이 빈번한 로깅으로 인해 차단됩니다 .-( – Lawondyss

+0

이 경우 코어 셀레늄으로 전환하고 싶을 수 있습니다. 나는 behat와 mink가 귀하의 목적에 유용하다고 생각하지 않습니다. –

2

우리는 Facebook의 액세스 토큰을 사용하여 "Connect to Facebook"단계가 모든 시나리오에 대해 Facebook에 로그인 요청을하지 않도록했습니다.

로그인 후 FB의 API에서 액세스 토큰을 검색하고 파일에 저장하면 다음에 연결할 때 "만료되지 않은"토큰이 있는지 여부를 확인합니다.