Как получить статус каждой строки строк данных, которые выполняются - PullRequest
0 голосов
/ 10 апреля 2019

Я тестирую сценарий, в котором есть около 100 секунд имени пользователя и пароля. Я должен использовать каждую пару имя пользователя-пароль один за другим, а затем попробовать войти в приложение. Затем выйдите из системы. Войдите снова в тот же браузер, не закрывая его. Здесь, если какие-либо учетные данные недействительны, только эта конкретная строка должна быть помечена как сбойная, а остальные должны продолжить выполнение

Я пытался найти решение, но не смог получить правильное разрешение

Scenario: To test if the given list of users credentials are valid

    Given user is already at Login page
    And user enters credentails

|   Username    |   Password    |
|   user1       |   password1   |
|   user2       |   invalid         |
|   user3       |   password3   |
|   user4       |   password4   |
|   user5       |   password5   |
|   user6       |   password6   |
|   user7       |   password7   |

Здесь состояние 2-й строки таблицы данных должно быть помечено как ошибочное в отчете, а остальные данные должны быть выполнены, кроме ошибочных. Переданные данные должны быть помечены как PASS в отчете. Как этого добиться.

1 Ответ

0 голосов
/ 10 апреля 2019

Сначала вам нужно будет изменить сценарий, как показано ниже.

 Scenario Outline: To test if the given list of users credentials are valid
    Given user is already at Login page
    And In credentails, user enters name as <Username> and Pwd as <Password>

    Examples: Checking Login Scenarios
      | Username | Password  |
      | user1    | password1 |
      | user2    | invalid   |

Второй, рассмотрим ниже, ваш шаг реализации

package my.package.name

import cucumber.api.PendingException;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.And;
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith;

@RunWith(Cucumber.class)
public class MyStepDefinitions {

    @Given("^user is already at Login page$")
    public void user_is_already_at_login_page() throws Throwable {
        throw new PendingException();
    }

    @And("^In credentails, user enters name as (.+) and Pwd as (.+)$")
    public void in_credentails_user_enters_name_as_and_pwd_as(String username, String password) throws Throwable {
        throw new PendingException();
    }

}

В-третьих, скажем, при реализации вышеописанного шага вы записываете действие для входа на сайт, и действие завершается неудачно, поскольку пароль неверен. Теперь в зависимости от того, какой отчет вы используете, вам нужно будет написать один метод в соответствии с API отчета, как я делюсь для степени.

public static synchronized void logFail(String message) {
    try {
        testReport.get().fail("<details>" + "<summary>" + "<b>" + "<font color=" + "red>" + "</font>" + "</b >" + "</summary>" + "<br>" + "<h6>" + "<b>" + BasePage.returnLocator(message) +  "</b>"+ "</h6>" + "</br>" + message +"</details>"+" \n");
    }
    catch(Exception e) {            
    }   
}

Наконец, следуя вышеприведенной иерархии, вы сможете распечатать пройдено / не выполнено в отчете.

...