如何在“魅力”报告中对测试步骤进行分组

时间:2019-02-14 08:06:19

标签: selenium-webdriver allure

我正在寻找可以在吸引力报告中对测试步骤进行分组的解决方案。

当前正在发生的事情:

例如,我有一个测试用例登录,其中有5个步骤 i = 0; while (i < 9) { checkCraft(CoustomItems.changeAmount(CoustomItems.rareEmeraldTier2(), 9), e.getInventory(), new HashMap<Integer, ItemStack>(){{ put(i, CoustomItems.rareEmeraldTier3()); i++; }}); } ,但是在诱人的报告中,我只希望对所有5个登录操作仅显示1个步骤。可能吗?

所以基本上我想将测试用例显示为步骤,而不是将场景显示为报表中的步骤。

我进行了很多搜索,但没有找到一种吸引人的方法。

1 个答案:

答案 0 :(得分:3)

您可以在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_stepReport.py文件中的静态函数

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

步骤将分组在'Do Login'步骤中

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;
    }
}