Как я могу сгруппировать шаги теста в отчете Allure - PullRequest
0 голосов
/ 14 февраля 2019

Я ищу решение, в котором я могу сгруппировать шаги теста в отчете очарования.

В настоящее время, что происходит:

Например, у меня есть один логин теста, где есть 5 шагов i.e go to login page, enter login detail, click on submit etc. Но в отчете очарования я хочу показать только 1 шаг для всех 5 действий входа в систему.Является ли это возможным?

Так что в основном я хочу отобразить тестовый пример как шаги, а не сценарии как шаги в отчете.

Я много искал, но не нашел способа сделать это с помощью allure.

1 Ответ

0 голосов
/ 13 марта 2019

Вы можете вызывать функции внутри allure.step блока

@pytest.mark.sanity
class TestExample:

    def test_example(self):
        with allure.step('Do Login'):
            self.go_to_login_page()
            self.insert_user_name()
            self.insert_password()

    def go_to_login_page(self):
        Report.report_step('go to login page')

    def insert_user_name(self):
        Report.report_step('insert username')

    def insert_password(self):
        Report.report_step('insert password')

Или с объектом страницы

@pytest.mark.sanity
class TestExampleTest:

    def test_example(self):
        with allure.step('Do Login'):
            (LoginPage()
             .go_to_login_page()
             .insert_user_name()
             .insert_password())


class LoginPage:

    def go_to_login_page(self):
        Report.report_step('go to login page')
        return self

    def insert_user_name(self):
        Report.report_step('insert username')
        return self

    def insert_password(self):
        Report.report_step('insert password')
        return self

report_step - статическая функция в Report.py файле

def report_step(step_title):
    with allure.step(step_title):
        pass

Шаги будут сгруппированы внутри 'Do Login' step

enter image description here

enter image description here

Редактировать Та же идея с Java

public class Test {
    public void testMethod() {
        doLogin();
    }

    @Step("Do Login")
    public void doLogin() {
        new LoginPage()
                .goToLoginPage()
                .insertUserName("NAME")
                .insertPassword("PASSWORD");
    }
}

public class LoginPage {

    @Step("Go to login page")
    public LoginPage goToLoginPage() {
       step("goToLoginPage");
       return this;
    }

    @Step("Insert user name {userName}")
    public LoginPage insertUserName(String userName) {
       return this;
    }

    @Step("Insert password {password}")
    public LoginPage insertPassword(String password) {
        return this;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...