Plik properties w testach

Cześć,

dość często zdarza się sytuacja, gdy chcemy przechować gdzieś dane konfiguracyjne, spójne dla całej testowanej aplikacji. Może być to np. adres aplikacji, login, hasło, ewentualnie inne dane używane do skryptów.

Jednym, ze sposobów, aby to zrobić może być plik properties.

Budowa pliku properties jest następująca:

page=http://stronatestowa.pl
username=user
password=secret
browser=chrome
driverPath=/driver/chromedriver.exe
screenshotPath=screens

Oczywiście powyższe dane są tylko przykładowe.

W moim przypadku, tworząc skrypt w Selenium WebDriver używałam Mavena. Mój plik test.properties umieściłam więc w folderze resource (podfolder properties nie jest konieczny):

 

Następnie wczytanie pliku properties wykonałam w następujący sposób:

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class PropertiesLoader {

    private static final String PROPERTIES_FILE_PATH = "/properties/test.properties";

    Properties loadPropertiesFromFile() {
        Properties prop = new Properties();
        InputStream inputStream = this.getClass().getResourceAsStream(PROPERTIES_FILE_PATH);
        try {
            prop.load(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return prop;
    }
}

Natomiast wczytanie konkretnych wartości zrealizowałam w taki sposób:

public class TestProperties {
    public static final String PAGE_ADDRESS;
    public static final String USERNAME;
    public static final String PASSWORD;
    public static final String BROWSER;
    public static final String DRIVER_PATH;
    public static final String SCREENSHOT_PATH;

    static {
        Properties prop = new PropertiesLoader().loadPropertiesFromFile();
        PAGE_ADDRESS = prop.getProperty("page");
        USERNAME = prop.getProperty("username");
        PASSWORD = prop.getProperty("password");
        BROWSER = prop.getProperty("browser");
        DRIVER_PATH = prop.getProperty("driverPath");
        SCREENSHOT_PATH = prop.getProperty("screenshotPath");
    }
}

Oczywiście propertiesy nie muszą być statyczne. Ja po prostu chciałam, aby to były stałe, do których mogłabym się łatwo odwołać z poziomu różnych testów.

Mam nadzieję, że ten post będzie dla kogoś pomocny.

Do kolejnego posta!

2 thoughts on “Plik properties w testach

  1. całe życie w niewiedzy… do tej pory wykorzystywałem bibliotekę ini4j. Wbudowane propertisy wydają się być prostsze.

    Więcej postów i kryjącej się za nimi wiedzy ! 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *