TestNG с 2 Testcase с поставщиком данных - PullRequest
0 голосов
/ 23 мая 2018

У меня вопрос по 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),

???

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

В ваших тестах отсутствуют dataProvider = "вход в систему"

@ Test (dataProvider = "вход в систему", описание = "Выполнить вход в систему", приоритет = 3)

0 голосов
/ 23 мая 2018

Вы можете достичь вышеописанного сценария с помощью 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 в свой XML-файл testng и запустите тест.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...