2015-10-14 4 views
0

Для того, чтобы наша структура строилась, мы должны сделать текстовый файл, который мы будем редактировать, прежде чем запускать тесты. Этот текстовый файл имеет две строки - URL нашего веб-приложения и расположение файла excel, содержащего тестовые примеры.Использование строк в .txt-файлах в качестве данных при тестировании

Прямо сейчас, для чтения файла, я использовал Scanner.

private static void readFile(String fileName) { 
    try { 
    File file = new File(fileName); 
    Scanner scanner = new Scanner(file); 
    while (scanner.hasNextLine()) { 
     System.out.println(scanner.nextLine()); 
    } 
    scanner.close(); 
    } catch (FileNotFoundException e) { 
    e.printStackTrace(); 
    } 
} 

Мой код жаргон не самый лучший, поэтому постарайтесь, чтобы получить то, что я спрашиваю:

Может кто-то мне точку в правильном направлении извлечения этих двух линий (URL и путь Excel) из текстового файла, присваивая их двум различным переменным/объектам/функциям/тому, что вы действительно хотите назвать их, и передавая их в основной тестовый скрипт, поэтому тестовый скрипт знает, что он хочет сделать.

Я нарисовал картину в краске. Взял 100 часов.

100 hours in paint

+0

Какой формат файла? Как и ваш код должен иметь возможность читать их просто отлично, пока каждый путь находится в отдельной строке. – npinti

+1

как насчет объекта «Свойства»? https://docs.oracle.com/javase/tutorial/essential/environment/properties.html – svarog

+1

Формат - .txt. Это маленький блокнот. Он читает это хорошо, мне просто интересно, как заставить его прочитать его, чем передать его в мой сценарий. @svarog Никогда не использовали свойства. Я сейчас это прочитаю и дам вам знать. – jagdpanzer

ответ

1
private String urlText; 
private String excelLocation; 

private static void readFile(String fileName) { 
    try { 
    int lineNumber = 0; 
    File file = new File(fileName); 
    Scanner scanner = new Scanner(file); 
    while (scanner.hasNextLine()) { 
     lineNumber++; 
     if (lineNumber == 1){ 
     urlText = scanner.nextLine(); 
     } 
     else{ 
     excelLocation = scanner.nextLine(); 
    } 
    scanner.close(); 
    } catch (FileNotFoundException e) { 
    e.printStackTrace(); 
    } 
} 

Если вы хотите быть более многословным, вы можете также использовать LineNumberReader. Смотрите здесь: How to get line number using scanner

1

Вы можете использовать Properties объект

для записи в файл:

Properties prop = new Properties(); 
OutputStream output = null; 

try { 

    output = new FileOutputStream("yourfile.txt"); 

    // set the properties value 
    prop.setProperty("database", "localhost"); 
    prop.setProperty("dbuser", "john"); 
    prop.setProperty("dbpassword", "password"); 

    // save properties to project root folder 
    prop.store(output, null); 

} catch (IOException io) { 
    io.printStackTrace(); 
} finally { 
    if (output != null) { 
     try { 
      output.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

} 

следующим образом:

Properties prop = new Properties(); 
InputStream input = null; 

try { 

    input = new FileInputStream("yourfile.txt"); 

    // load a properties file 
    prop.load(input); 

    // get the property value and print it out 
    System.out.println(prop.getProperty("database")); 
    System.out.println(prop.getProperty("dbuser")); 
    System.out.println(prop.getProperty("dbpassword")); 

} catch (IOException ex) { 
    ex.printStackTrace(); 
} finally { 
    if (input != null) { 
     try { 
      input.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

и вы получите «yourfile.txt "файл с этими строками:

dbpassword=password 
database=localhost 
dbuser=john 

Я принял код от: http://www.mkyong.com/java/java-properties-file-examples/