2016-07-20 7 views
0

Я пишу автоматические тесты с использованием Java с сеткой Selenium Grid и JUnit, и я столкнулся с проблемой с пользовательским вводом. Так что мой код выглядит следующим образом:Селеновая сетка с Java - пользовательский ввод

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(); 
    } 

Я хотел бы добавить пользовательский ввод, поэтому, когда пользователь, например «Google Chrome», тест начнется с Google Chrome, когда он типа «Firefox», то тест будет начинаться с Firefox и т.д. Я попытался поставить

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

Somwhere в моем коде (в методе нАлАдкИ, например), но при запуске программы, я не могу ничего в консоли типа. Кто-нибудь знает решение для этого?

+0

Почему именно вы хотите автоматизированный тест, который должен управляться вручную? Если вы просто хотите автоматизировать определенные задачи, вы не должны делать из него единичный тест, просто создайте 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 

или установив их в IDE