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

Allure 2 не выводит в отчете наименования @Step

infrastructure
reporting
java
allure
Теги: #<Tag:0x00007fb2f408d8e8> #<Tag:0x00007fb2f408d550> #<Tag:0x00007fb2f408d1e0> #<Tag:0x00007fb2f408ce98>

(Petrusiova) #1

Помогите понять что я делаю не так

Задача именно формировать отчет в allure 2
Степы выполняет, но не выводит в отчете.

мой пом:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>java</groupId>
    <artifactId>Test</artifactId>
    <packaging>jar</packaging>
    <version>0.1.0</version>

    <properties>
        <aspectj.version>1.8.10</aspectj.version>
        <gson.version>2.7</gson.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>3.14.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-support</artifactId>
            <version>2.53.0</version>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>2.53.0</version>
        </dependency>
        <dependency>
            <groupId>ru.yandex.qatools.htmlelements</groupId>
            <artifactId>htmlelements-java</artifactId>
            <version>1.17</version>
        </dependency>
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-plugin-api</artifactId>
            <version>2.10.0</version>
        </dependency>
        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-maven-plugin</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>ru.yandex.qatools.htmlelements</groupId>
            <artifactId>htmlelements-matchers</artifactId>
            <version>1.18</version>
        </dependency>
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-junit4</artifactId>
            <version>2.10.0</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-java-commons</artifactId>
            <version>2.10.0</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
        <dependency>
            <groupId>io.qameta.allure</groupId>
            <artifactId>allure-cucumber-jvm</artifactId>
            <version>2.6.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>${gson.version}</version>
        </dependency>
        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-junit-adaptor</artifactId>
            <version>1.5.0</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>${aspectj.version}</version>
        </dependency>
    </dependencies>


    <build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ftp</artifactId>
                <version>2.10</version>
            </extension>
        </extensions>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.19.1</version>
                <configuration>
                    <argLine>
                        -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                    </argLine>
                    <testFailureIgnore>true</testFailureIgnore>
                    <properties>
                        <property>
                            <name>listener</name>
                            <value>ru.yandex.qatools.allure.junit.AllureRunListener</value>
                        </property>
                    </properties>
                    <skipTests>false</skipTests>
                    <systemProperties>
                        <property>
                            <name>allure.results.directory</name>
                            <value>C:\Users\Olia\test\target\allure-results</value>
                        </property>
                    </systemProperties>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>io.qameta.allure</groupId>
                <artifactId>allure-maven</artifactId>
                <version>2.10.0</version>
                <executions>
                    <execution>
                        <id>allure-report</id>
                        <phase>post-integration-test</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.2</version>
            </plugin>
            <plugin>
                <groupId>ru.yandex.qatools.allure</groupId>
                <artifactId>allure-maven-plugin</artifactId>
                <version>2.5</version>
            </plugin>
            <plugin>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-maven-plugin</artifactId>
                <version>9.2.11.v20150529</version>
                <configuration>
                    <webAppSourceDirectory>${project.build.directory}/site/allure-maven-plugin</webAppSourceDirectory>
                    <stopKey>stop</stopKey>
                    <stopPort>1234</stopPort>
                    <httpConnector>
                        <port>9999</port>
                    </httpConnector>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.7.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <reporting>
        <excludeDefaults>true</excludeDefaults>
        <plugins>
            <plugin>
                <groupId>ru.yandex.qatools.allure</groupId>
                <artifactId>allure-maven-plugin</artifactId>
                <version>2.5</version>
            </plugin>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
                <version>2.2</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>dependency-updates-report</report>
                            <report>plugin-updates-report</report>
                            <report>property-updates-report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>

        <outputDirectory>${basedir}/target/site</outputDirectory>
    </reporting>

</project>


(Pavel) #2

А вы аннотацию step используете?
Я делал по этой инструкции и все работает
https://m.habr.com/ru/company/sberbank/blog/358836/


(Aleksandr Jashhuk) #3

В консоли какие сообщения есть?


(Petrusiova) #4

T E S T S

SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Running YandexSearchTest
Starting ChromeDriver 78.0.3904.70 (edb9c9f3de0247fd912a77b7f6cae7447f6d3ad5-refs/branch-heads/3904@{#800}) on port 30108
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
ноя 23, 2019 6:37:57 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 35.424 sec <<< FAILURE! - in YandexSearchTest
open(YandexSearchTest) Time elapsed: 30.872 sec <<< FAILURE!
java.lang.AssertionError: ═х эрщфхэю яюых фы ттюфр Ёхушюэр
at YandexSearchTest.open(YandexSearchTest.java:12)

Results :

Failed tests:
YandexSearchTest.open:12->YandexSearchSteps.checkMarket:25 Не найдено поле для ввода региона

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0

[ERROR] There are test failures.

Please refer to C:\Users\Olia\test\target\surefire-reports for the individual test results.
[INFO]
[INFO] — allure-maven:2.10.0:serve (default-cli) @ Test —
[INFO] Allure installation directory C:\Users\Olia\test/.allure
[INFO] Try to finding out allure 2.8.1
[INFO] Generate Allure report (serve) with version 2.8.1
[INFO] Generate Allure report to C:\Users\Olia\test\target\site/allure-maven-plugin
[INFO] Found results directory C:\Users\Olia\test\target\allure-results
[INFO] Can’t find information about categories.
[INFO] Generate report to C:\Users\Olia\test\target\site\allure-maven-plugin
Generating report to temp directory…
Report successfully generated to C:\Users\Olia\AppData\Local\Temp\1294856007464476439\allure-report
Starting web server…
2019-11-23 18:38:32.405:INFO::main: Logging initialized @2709ms to org.eclipse.jetty.util.log.StdErrLog
Server started at http://192.168.0.104:53023/. Press <Ctrl+C> to exit


(Petrusiova) #5

`@Step(“Открываем страницу Яндекса”)
public void openYandexAndCheck(){
YandexPage page = new YandexPage();
checkStartPage(page, chromeDriver);
page.setSearch(“Яндекс маркет”);
page.redirectToMarket();
}

@Step("Проверяем страницу Яндекс.Маркета")
public void checkMarket(){
    MarketPage market = new MarketPage();
    checkSearchMarketPage(chromeDriver);
    market.anotherCity();
    market.changeCity("сан");
    try {
        Thread.sleep(5000);
        market.choseSpb();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}`

эти методы использую в тесте. Уже голову сломала что не так


(Aleksandr Jashhuk) #6

Да, ничего внятного в консоли не видно.
Предлагаю:

  • обновить версии библиотек до актуальных - аспект вроде уже 1.9.4, а как раз при его некорректной работе в прежние годы шаги и не отображались, Аллюр 2.13.0, да и Junit-у 4-му уже лет 5 наверное без поддержки :slight_smile:
  • добиться работы log4j всё-таки - могут появиться из библиотек дополнительные сообщения
  • Методы со @Step точно вызываются из методов с @Test?

(Petrusiova) #7

Спасибо за ответ, да, я действительно вызываю степы из теста
Вот ссылка на гитхаб, на всякий
https://github.com/Petrusiova/Test/blob/WhereNorm/src/test/java/YandexSearchTest.java

Не совсем поняла что Вы имеете в виду под добиться работы log4j


(Aleksandr Jashhuk) #8

SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

При нормальной работе логгера таких сообщений не должно быть, ИМХО.


(Aleksandr Jashhuk) #9

Захардкожены пути - это плохо, у нас таких путей нет:


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

Вот эти степы ведь не имеют никакого отношения ни к какому @Test:

Ну, и желательно исходники держать в UTF-8 не смотря на свою винду - а иначе ничего не понятно в строках :slight_smile:


(Petrusiova) #10

Они (эти степы) вызываются в checkMarket() и openYandexAndCheck(), которые тоже помечены аннотацией @Step
Насчет менеджера и селенида - спасибо, сейчас попытаюсь сделать


(Petrusiova) #11

Ошибку с SLF4J исправила, теперь в консоли такое:


T E S T S

Running YandexSearchTest
Starting ChromeDriver 78.0.3904.70 (edb9c9f3de0247fd912a77b7f6cae7447f6d3ad5-refs/branch-heads/3904@{#800}) on port 44917
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
ноя 23, 2019 7:27:54 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: W3C
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 49.99 sec - in YandexSearchTest

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO]
[INFO] — allure-maven:2.10.0:serve (default-cli) @ Test —
[INFO] Allure installation directory C:\Users\Olia\test/.allure
[INFO] Try to finding out allure 2.8.1
[INFO] Generate Allure report (serve) with version 2.8.1
[INFO] Generate Allure report to C:\Users\Olia\test\target\site/allure-maven-plugin
[INFO] Found results directory C:\Users\Olia\test\target\allure-results
[INFO] Can’t find information about categories.
[INFO] Generate report to C:\Users\Olia\test\target\site\allure-maven-plugin

Generating report to temp directory…
Report successfully generated to C:\Users\Olia\AppData\Local\Temp\32951432309006209\allure-report
Starting web server…
2019-11-23 19:28:44.243:INFO::main: Logging initialized @2725ms to org.eclipse.jetty.util.log.StdErrLog
Server started at http://192.168.0.104:54451/. Press <Ctrl+C> to exit

а у Вас с моим выкаченным проектом не показываются степы?
думала может проблема локальная…


(Aleksandr Jashhuk) #12

Не соберётся проект у меня в Юниксе - непереносимо написан код.
Очистка в Мавене и то нормально не проходит - обновляйте библиотеки, ни к чему это некрофильство.
И возьмите TestNG, а не Junit. Тем более 4-ой версии. Не мучайте себя :slight_smile:


(Aleksandr Jashhuk) #13

В личку кинул ссылку на заготовку с Junit-4, Селенидой, Кукумбером и Аллюром. Там со степами нормально должно быть.


(Petrusiova) #14

Александр, победа!
Воспользовалась Вашим помником и сначала добавила все зависимости, которых у меня не было
В консоли выводилось [ERROR] io.qameta.allure.AllureLifecycle - Could not start step: no test case running#2

Заменила listener на ваш - и все получилось.
БОЛЬШОЕ СПАСИБО!


(Aleksandr Jashhuk) #15

О! Супер!
Очень рад за Вас.


(Mikhail G) #16

Скиньте мне тоже ссылочку посмотреть, пожалуйста


(Aleksandr Jashhuk) #17

Скинул.