TestNG с 2 Testcase с поставщиком данных

У меня вопрос по TestNG. У меня есть набор данных для тестирования, но я хочу выполнить полный цикл тестирования для каждого набора данных. Как я могу это сделать?

Это мой код

@DataProvider(name = "login")
public static Object[][] usernamePassword() {
    // username, password, isSukses
    return new Object[][] { 
        { "coin", "coin123", true }, 
        { "coin", "coin", false },
        { "username", "password", false } };
}

 @Test(description = "Fill the Login Details", priority = 2)
public void FillLoginDetails(String user, String pass, boolean isSuccess) throws Exception {

    try {
        // Get the username element
        WebElement username = driver.findElement(By.id("uid"));
        username.sendKeys(user);

        // Get the password element
        WebElement password = driver.findElement(By.id("pwd"));
        password.sendKeys(pass);

        Thread.sleep(1000);

        TestNGResults.put("3", new Object[] { 2d, "Fill Login form data (Username/Password)",
                "Login details gets filled", "Pass" });

    } catch (Exception e) {
        TestNGResults.put("3",
                new Object[] { 2d, "Fill Login form data (Username/Password)", "Login form gets filled", "Fail" });
        Assert.assertTrue(false);
    }
}

@Test(description = "Perform Login", priority = 3)
public void doLogin() throws Exception {

    try {
        // Click on the Login button
        WebElement login = driver.findElement(By.id("login-button"));
        login.click();

        Thread.sleep(1000);
        // Assert the user login by checking the Online user
        WebElement onlineuser = driver.findElement(By.cssSelector("h3.paddedleft > strong.ng-binding"));
        AssertJUnit.assertEquals("Welcome, " + "coin", onlineuser.getText());
        TestNGResults.put("4",
                new Object[] { 3d, "Click Login and verify welcome message", "Login success", "Pass" });
    } catch (Exception e) {
        TestNGResults.put("4",
                new Object[] { 3d, "Click Login and verify welcome message", "Login success", "Fail" });
        Assert.assertTrue(false);
    }
}

как можно так проверить,

Приоритет теста 2 (данные 1),

Приоритет теста 3 (данные 1),


Приоритет теста 2 (данные 2),

Приоритет теста 3 (данные 2),


Приоритет теста 2 (данные 3),

Приоритет теста 3 (данные 3),

???


person Rizqi Ahmad Fauzan    schedule 23.05.2018    source источник
comment
Что вы получаете в результате на данный момент,   -  person Ishita Shah    schedule 23.05.2018
comment
@Rizqi Ahmad Fauzan: Пожалуйста, проверьте мой ответ   -  person Subburaj    schedule 25.05.2018


Ответы (2)


Вы можете реализовать описанный выше сценарий с помощью Factory Concepts. Но тестовые данные необходимо переместить в другой класс и внести некоторые изменения в ваш тестовый класс.

Пожалуйста, проверьте приведенный ниже URL, и вы получите четкое представление.

http://fruzenshtein.com/testng-dataprovider-run-tests-sequentially/< /а>

Последовательное выполнение нескольких тестов с разными параметрами testng

Создайте переменную экземпляра для ваших параметризованных данных

String user; 
String pass;
boolean isSuccess;

Выполните перегрузку конструктора с указанными выше параметрами и инициализируйте переменную экземпляра

//Assumed the Class Name as LoginTest

LoginTest(String user, String pass, boolean isSuccess){
this.user=user;
this.pass=pass;
this.isSuccess=isSuccess;
}

Создайте еще один класс для поставщика данных

public class SampleFactory {

        @Factory(dataProvider="login")
        public Object[] createInstances((String userName, String password, boolean isSuccess) {
            return new Object[] {new LoginTest(userName, password,isSuccess)};
        }

        @DataProvider(name = "login")
        public static Object[][] usernamePassword() {
            // username, password, isSukses
            return new Object[][] { 
                { "coin", "coin123", true }, 
                { "coin", "coin", false },
                { "username", "password", false } };
        }

    }

Настройте и запустите TestNG XML

Добавьте только класс SampleFactory в свой testng xml и запустите свой тест.

person Subburaj    schedule 23.05.2018

В ваших тестах отсутствует dataProvider="login"

@Test(dataProvider="login", description = "Выполнить вход", priority = 3)

person Dominic Giallombardo    schedule 27.05.2018