2014-04-17 5 views
2

robotframework에서 시작된 테스트에서 로컬 노드와 원격 노드로 작업하는 셀레늄 그리드가 있습니다. 로봇 테스트에서 셀레늄 스타트 업을 제어하고 싶지는 않지만, 단지 테스트 대상 장치 (DUT) 인 게이트웨이를 사용하는 셀렌 노드에 대한 액세스 권한을 부여한다고 말하고 싶습니다. 나는 본질적으로 testbed1의 클라이언트 인터페이스 인 testbed1에서 desired_criteria ~ = mgmt를 기반으로 특정 노드에 액세스하려고합니다. 테스트 베드 당 그리드가 필요합니까? 특정 테스트 베드에 그리드를 연결하고 관리 인터페이스 용으로 다른 셀레늄을 실행해야합니다.Robotframework에서 특정 셀레늄 그리드 노드를 선택하는 방법

Client ----------- DUT --------- Server 
    node  |  | mgmt interface 
192.168/24 |  | 
      |  | 
     localhost ---- 10.0.1.1 
    hub + node + robot runner 

클라이언트 노드에 platform = LINUX를 지정하고 local-node에 platform = UNIX를 지정하려고 시도했지만 Open Browser에서 작동하지 않습니다. 이제 robotframework_selenium2 라이브러리의 사용을 시도했습니다.

https://github.com/detro/ghostdriver/blob/master/README.md은 인스턴스를 분리 할 수있는 방법을 제공 할 수 있지만 클라이언트 브라우저에서 firefox를 비활성화하고 관리자 액세스 용으로 사용하면 특정 노드에서 실행되는 인스턴스 하나입니다. (해킹! 해킹! 털볼).

답변

1

이 문제를 해결하는 열쇠는 open_browser를 호출 할 때 참조하고있는 셀렌 인스턴스를 알기 위해서이며 셀레늄 원격 RC client_web.open_browser를 참조하거나 키워드 세트 라이브러리 검색 순서를 사용하여 명시 적으로 제어 할 수 있습니다.

*** Settings *** 
Library SeleniumLibrary 120 ${CLIENT_IP} ${SELENIUM_SERVER_PORT} WITH NAME client_web 

*** Variables *** 
${MANAGER_BROWSER} Firefox 
${BROWSER} Firefox 

*** Test Cases *** 
Verify Two Browsers Using Search Order 
    [Setup] Test Case Setup 
    [Tags] noncritical 
    Set Library Search Order SeleniumLibrary 
    ${wb_index} = Open Browser ${DUT} ${MANAGER_BROWSER} 
    Set Library Search Order client_web 
    ${wb_index} = Open Browser ${facebook} ${BROWSER} 
    Maximize Browser Window 
    Select Window main 
    Wait Until Page Contains ${page text} 10s 
    Log browser-index:${wb_index} 
    Comment Set suite variable Manager_Browser with call to open specific browser 
    [Teardown] Local Test Case Teardown 
관련 문제