2013-03-07 3 views
4

우리는 사용자 A의 브라우저에서 수행 한 작업이 사용자 B의 브라우저에서 부작용을 일으키는 공동 작업 웹 응용 프로그램을 보유하고 있습니다. 대화방은 앱의 일부이며, 우리가 테스트하려고 시도하는 좋은 예입니다.공동 웹 응용 프로그램에 대한 종단 간 UI 테스트가 필요합니까?

우리의 현재 스택은 다음과 같습니다 노드에서 실행되는 프론트 엔드

  • 익스프레스

    • AngularJS와
    • Socket.IO 클라이언트 브라우저
    • 을 사이에 웹 소켓 통신을 처리하는 노드에서 실행되는 정적 파일을 제공하기 위해
    • 우리의 빌드 프로세스를위한 브런치
    • 각도 씨앗은 우리 테스트의 출발점입니다
    • 재스민 실제 테스트 프레임 워크에 대한
    • Testacular는 테스트

    이 테스트에 대해 갈 수있는 가장 좋은 방법은 무엇입니까

  • 를 실행? 그리고 "최고"는 "모든 것"을 의미합니다. 전체 통합 테스트에는 2 개의 브라우저와 2 개의 웹 서버 (HTML 및 웹 소켓)가 필요합니다. 두 웹 서버는 Node에서 실행되므로 최소한 Testacular와 동일한 환경에 있습니다. 내 마음에

    이 재스민에서 웹 브라우저를 시작 우리의 소켓 서버

  • 의 인스턴스를 시작

    1. 을 필요로하는 것, 그리고 브라우저
    2. 시작 다른 브라우저에 대한 참조를 유지하는 것, 브라우저 B, 그 참조를 잡아.
    3. 문제는 브라우저 A를 명령하고 브라우저 B의 결과 변경 사항을 테스트

    사람이 문서 또는 예 건너했습니다 (바람직하게는 재스민과 Testacular에서, 그러나 우리는 옵션 열려있어) 테스트 이런 종류의 ? 어떤 검색어를 사용할지에 대한 조언조차도 도움이 될 수 있습니다.

  • +0

    다른 옵션을 사용하려면 [Sahi] (http://sahi.co.in/)를 자동화 된 브라우저 테스트 도구로 제안하십시오. – Spudley

    +0

    당신은 어떤 해결책을 찾았는지 정말 흥미로울 것입니다 ... – PrimosK

    답변

    0

    제 조언이 도움이 될지 어떨지는 확실하지 않습니다.

    내 마음에 처음 나타나는 도구는 Selenium입니다. 좋은 소식 (현재 스택을 기반으로 함)은 JavaScript을 쓰기 테스트에 사용할 수 있다는 것입니다. 여기 Google에 기간 "치즈"를 검색 한 예입니다 후 콘솔에 결과 페이지의 제목을 출력합니다

    var driver = new webdriver.Builder().build(); 
    driver.get('http://www.google.com'); 
    
    var element = driver.findElement(webdriver.By.name('q')); 
    element.sendKeys('Cheese!'); 
    element.submit(); 
    
    driver.getTitle().then(function(title) { 
        console.log('Page title is: ' + title); 
    }); 
    
    driver.wait(function() { 
        return driver.getTitle().then(function(title) { 
        return title.toLowerCase().lastIndexOf('cheese!', 0) === 0; 
        }); 
    }, 3000); 
    
    driver.getTitle().then(function(title) { 
        console.log('Page title is: ' + title); 
    }); 
    
    driver.quit(); 
    

    내가 셀레늄 2 브라우저의 '개방'이상의 인스턴스에 가능성이 있다고 생각 - 그러면 부작용/상호 작용을 테스트 할 수 있습니다.

    는 다른 방법으로 당신은 또한 시험에 대한 driver로 (또한 Spudley 언급) 셀레늄 또는 Sahi를 사용 WindMill 프로젝트, UItest.js 또는 상용 제품 Twist 한 번 봐 걸릴 수 있습니다.

    +0

    이상한, WindMill은 Mac에서 Chrome을 지원하지 않습니까?이것이 우리의 기본 개발 및 테스트 환경입니다. – huyz

    +0

    알지 못했습니다 (하지만 잘 알고 있습니다) ... – PrimosK

    관련 문제