t.me/atinfo_chat Telegram группа по автоматизации тестирования

Allure report без @Step, а с красивыми шагами из методов

Теги: #<Tag:0x00007f7485cb4ef8> #<Tag:0x00007f7485cb4e08> #<Tag:0x00007f7485cb4cc8> #<Tag:0x00007f7485cb4bd8> #<Tag:0x00007f7485cb4ac0>

Всем привет! Подключил Allure report к проекту Java + Selenide + TestNg. Не хочу над каждым методом прописывать аннотацию @Step и при этом получить красивый отчет с шагами из методов теста (Например метод openLoginPage() в отчете будет указан как шаг Open login page) Может кто-то использует в работе такой подход и сможет подсказать как это реализовать. Спасибо!

Вроде, это https://docs.qameta.io/allure/#_selenide надо сделать.

Ну это не совсем то что мне нужно. Я хочу каким то образом реализовать это так что бы названия методов, которые используются в тестах в отчете отображались шагами, как я описал это в примере

Мммм, ну тогда это - https://automation-remarks.com/2017/selenide-allure-2/index.html

Вот это я тоже находил, но не очень понял что и куда мне нужно добавить. Так же у меня переопределение этого метода подчеркивается красным:

@Override
    public void onEvent(final LogEvent event){
}

Откуда вообще этот метод переопределяется? :slight_smile:

Потому что статья немного устарела. Надо брать за основу https://github.com/allure-framework/allure-java/blob/master/allure-selenide/src/main/java/io/qameta/allure/selenide/AllureSelenide.java

Спасибо! А есть идеи, как мне все это переделать, что бы получить тот результат, который я хочу?

Если я не ошибаюсь, то в java всё это дело работает так же через аспекты.
А аспекту надо знать, в какой метод инжектиться. Именно это и делает аннотация.

Вы же можете написать свой аспект, который будет аннотировать все методы подряд :slight_smile:

Не уверен я что смогу это реализовать :grinning: Но неужели все используют стандартную аннотацию @Step, если нет, то почему я не нашел больше полезной информации, кроме статьи, которую скинул @BabyRoot

Может попробовать какую-то свою аннотацию которую будете вешать на класс типа @ConvertToStep, написать свой листенер который будет смотреть что если класс имеет такую аннотацию то все его методы являются шагами.
Лично мне хватает аннотации @Step, даже не возникало никогда проблем с этим

2 Симпатий

Попробуйте JDI там все шаги логируются по умолчанию и в итоге вы получаете красивый репорт.
https://jdi-docs.github.io/jdi-light/
Но если хотите логировать свои методы без аннотаций, то надо написать свой аспект. Это очень просто, но ему все равно надо указать какие шаги логировать (допустим все находящиеся в некой папке или удовлетворяющие каким-то другим критериям)

Вы хорошую идею подкинули, но только я не особо в курсе как мне этот листенер описать, а главное как указать что это относится именно к алюру…