2016-07-20 9 views
0

Selenium Grid 및 JUnit 프레임 워크에서 Java를 사용하여 자동 테스트를 작성 중이며 사용자 입력에 문제가 있습니다. 그래서 내 코드는 다음과 같습니다Java 사용자 입력을 사용하는 Selenium grid

package com.example.tests; 

import com.thoughtworks.selenium.DefaultSelenium; 
import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 

import java.util.Scanner; 

import static org.junit.Assert.fail; 
import static org.testng.Assert.assertEquals; 
import static org.testng.Assert.assertTrue; 


public class test { 
    private DefaultSelenium selenium; 

    @Before 
    public void setUp() throws Exception { 
     selenium = new DefaultSelenium("localhost", 5555, "*googlechrome", "www.google.com"); 
     selenium.start(); 
    } 

    @Test 
    public void Test() throws Exception { 
    // some tests here 
    } 

    @After 
    public void tearDown() throws Exception { 
     selenium.stop(); 
    } 

사용자가 입력 예 "구글 크롬"에 대한 테스트가 구글 크롬과 함께 시작됩니다 때, 그래서, 사용자 입력을 추가 할 때 그 유형 "파이어 폭스"는이 시험은 내가 (예를 들어 설정 방법) somwhere 내 코드에

Scanner in = new Scanner(System.in); 
String web_browser = in.next(); 

을 넣어 시도 등 파이어 폭스로 시작하지만, 프로그램이 시작할 때, 나는 콘솔에 아무것도 입력 할 수 없습니다. 누구든지이 솔루션을 알고 있습니까?

+0

왜 정확하게 당신이 수동으로 제어 할 필요가 자동화 된 테스트를 원하는 것이 당신의 IDE에서 그들을 설정하여 테스트? 특정 작업을 자동화하고 싶다면 단위 테스트를하지 말고 필요한 작업을 실행하고 실행할 작업을 기반으로 매개 변수를 제공하는 POJO 만 만들면됩니다. – t0mppa

+0

@ t0mppa 예,하지만 다른 브라우저와 같은 테스트를 동시에 실행하고 싶습니다. –

+0

저는 수동 테스트를 중간에 두는 것이 잘못된 테스트 방법이라고 생각합니다. 자동화 테스트에 대해 이야기하고 있기 때문입니다. 테스트 스위트에서 여러 브라우저를 직접 실행할 필요없이 어떤 식 으로든 개인적으로 상호 작용할 수 있습니다. – t0mppa

답변

0

테스트에서 System.in을 다루기가 까다 롭습니다.

시스템 속성으로 드라이버 기본 설정을 읽는 것이 좋습니다.

String driver = System.getProperty("driver"); 
if (driver != null) { 
    //use that driver 
} 
else { 
    //use default driver 
} 

할 수 있습니다 출시

mvn test -Ddriver=chrome 

같은 또는