У себя использую TestNG runner и каждый step у меня через @Test(priority = ) сделан.
Т.е. один класс и внутри него методы через @Test(priority) аннотированы.
@88Post1, собственно @Step это именно аннотация Allure’a )
Если хотите увидеть в отчете степ, то либо ставите @Step для конкретного метода, например:
@Step("Perform a Sign-in as user {user.login}")
protected SignInPageIMDb login(User user) {
return new SignInPageIMDb()
.goToSignInPageIMDB()
.logInAs(user);
}
или, если хотите разбить свой тест-метод на степы, то надо лямбда-стилем завернуть соотвествующие части кода теста, например:
@Test
public void scenario1_Test() {
step("Step 1: Go to the 'www.smthing.com/automation-test' ", () ->
open("automation-test/")
);
RandomClient client = step("Step 2: Create a new Client object with randomly generated data",
RandomClient::new);
step("Step 3: Fill the registration fields with the Client's data", () -> {
$("[name='firstname']").shouldBe(visible).sendKeys(client.getFirstName());
$("[name='lastname']").shouldBe(visible).sendKeys(client.getLastName());
$("[name='email']").shouldBe(visible).sendKeys(client.getEmail());
$("[name='phone']").shouldBe(visible).sendKeys(client.getPhone());
$("[name='company']").shouldBe(visible).sendKeys(client.getCompany());
});
step("Step 5: Click the 'Submit' button", () ->
$("[type='submit']").shouldBe(visible, enabled).click()
);
step("Step 6: Verify that you were redirected to the 'saleforce-promotion' page", () ->
webdriver().shouldHave(urlStartingWith("https://www.smthing.com/" +
"saleforce-promotion-june-2020-thank-you/?submissionGuid="))
);
step("Step 7: Verify that the page has 'Thank you for singing up!' text", () ->
$("div.elementor-widget-container h1")
.shouldBe(visible, Duration.ofSeconds(10))
.shouldHave(text("Thank you for singing up!\n" +
"We will be in touch with you shortly."))
);
}
Можно конечно еще занести Cucumber и использовать его степы, но это плохая идея, очень плохая!
ИМХО это единственный адекватный вариант. Ранить разные тесты с подменным приорити чтобы сформировать “красивый отчёт аллюр”, на первый взгляд воспринимается настолько чудовищной формой извращения, по сравнению с которой меркнут худшие из спорных практик BDD.
В связи с этим я стесняюсь спросить, но всё-же спрошу, а как хотелось?
Тест это же и есть совокупность шагов + ассерты.
У нас есть PageObject в котором есть методы например
` @Step (“Enter email”)
public void enterEmail(String email){
// some code
}
@Step (“Enter password”)
public void enterPasword(String password){
// some code
}
`
В тесте же мы вызываем эти методы и в алююре видим шаги.