allure: прикрепляются текстовые файлы предыдущих тестов

rest-assured
java
allure
Теги: #<Tag:0x00007fedb7fd7f58> #<Tag:0x00007fedb7fd7e18> #<Tag:0x00007fedb7fd7cd8>

(Тест Тестовый) #1

Всем привет!
Подключил allure к авто тестам rest-assured (java maven проект). К каждому шагу прикрепляю запрос и ответ в виде текстового файла. Лиснер взял готовый: http://automation-remarks.com/2017/rest-assured-allure-log/

Но в результате запросы и ответы прикрепляются некорректно. А именно :
-для первого теста всё нормально - прикреплены запрос и ответ https://prnt.sc/gjwo3b
-для второго и последующих прикреплены по 4 документа - запрос и ответ предыдущего теста и запрос и ответ данного теста https://prnt.sc/gjwo7j
Вот мой pom:

<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>rr</groupId>
    <artifactId>rest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <properties>

        <user.username>username</user.username>
        <user.password>password</user.password>

        <project.build.sourceEncoding>cp1251</project.build.sourceEncoding>
        <project.reporting.outputEncoding>cp1251</project.reporting.outputEncoding>
        <suiteFile>${project.basedir}/src/test/resources/testng.xml</suiteFile>

        <!-- Dependencies Versions -->
        <compiler.version>1.7</compiler.version>
        <allure.version>1.4.23</allure.version>
        <htmlelements.java.version>1.17</htmlelements.java.version>
        <aspectj.version>1.7.3</aspectj.version>

        <!-- Plugin Versions -->
        <maven-compiler-plugin.version>3.3</maven-compiler-plugin.version>
        <maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
        <allure-maven-plugin.version>2.2</allure-maven-plugin.version>
        <versions-maven-plugin.version>2.2</versions-maven-plugin.version>

        <!-- Directory Properties -->

        <allure.results.directory>${project.build.directory}/allure-results</allure.results.directory>
        <allure.report.directory>${project.build.directory}/site/allure-report</allure.report.directory>
        <resource-test.directory>${project.basedir}/src/test/resources</resource-test.directory>

    </properties>

    <dependencies>

        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-testng-adaptor</artifactId>
            <version>${allure.version}</version>
        </dependency>
        <dependency>
            <groupId>ru.yandex.qatools.htmlelements</groupId>
            <artifactId>htmlelements-java</artifactId>
            <version>${htmlelements.java.version}</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.1</version>
        </dependency>

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.8.3</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>


        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.8.3</version>
        </dependency>

        <dependency>
            <groupId>com.jayway.restassured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>2.9.0</version>
        </dependency>

        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20160212</version>
        </dependency>

        <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
            <version>2.2.0</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.5</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.4</version>
        </dependency>
    </dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
                <configuration>
                    <source>${compiler.version}</source>
                    <target>${compiler.version}</target>
                </configuration>
            </plugin>
            <!-- Allure -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven-surefire-plugin.version}</version>
                <!--<>true</inherited>-->
                <configuration>
                    <testFailureIgnore>true</testFailureIgnore>
                    <argLine>
                        -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
                    </argLine>
                    <suiteXmlFiles>
                        <suiteXmlFile>${suiteFile}</suiteXmlFile>
                    </suiteXmlFiles>
                    <reportsDirectory>target/TestReport</reportsDirectory>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <excludeDefaults>true</excludeDefaults>
        <plugins>
            <plugin>
                <groupId>ru.yandex.qatools.allure</groupId>
                <artifactId>allure-maven-plugin</artifactId>
                <version>${allure-maven-plugin.version}</version>
            </plugin>
        </plugins>
    </reporting>
</project>

Подскажите, пожалуйста, в чём ошибка? Почему прикрепляются запросы и ответы предыдущих тестов?


(Ramon Menezes) #2
  1. запуск локальный или через CI?
  2. строку для запуска дайте, мож там clean missed
  3. и пример теста с импортами, а то у вас подключен junit, testng, allure-testng-adaptor

(Vasiliy Rakshin) #3

А почему такой старый аллюр используете?
используйте хотя бы 1.5.4 версию (очень похоже на баг аллюра, который был пофикшен)
testng бы тоже обновить.
dependencies очистить от повторов.


(Тест Тестовый) #4
  1. Локально
$ mvn clean test site
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building ag-rest-assured 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ ag-rest-assured ---
[INFO] Deleting /home/jaroslav/projects/idea2/ag-rest-assured/target
[INFO] 
[INFO] --- maven-resources-plugin:3.0.1:resources (default-resources) @ ag-rest-assured ---
[INFO] Using 'cp1251' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ ag-rest-assured ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 3 source files to /home/jaroslav/projects/idea2/ag-rest-assured/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:3.0.1:testResources (default-testResources) @ ag-rest-assured ---
[INFO] Using 'cp1251' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.7.0:testCompile (default-testCompile) @ ag-rest-assured ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/jaroslav/projects/idea2/ag-rest-assured/target/test-classes
[INFO] 
[INFO] --- maven-surefire-plugin:2.20:test (default-test) @ ag-rest-assured ---
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running TestSuite
...
... TestNG 6.11 by Cédric Beust (cedric@beust.com)
...

[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 9.843 s - in TestSuite
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
[INFO] 
[INFO] 
[INFO] --- maven-site-plugin:3.3:site (default-site) @ ag-rest-assured ---
[INFO] configuring report plugin ru.yandex.qatools.allure:allure-maven-plugin:2.2
[WARNING] No project URL defined - decoration links will not be relativized!
[INFO] Rendering site with org.apache.maven.skins:maven-default-skin:jar:1.0 skin.
[INFO] Generating "Allure" report    --- allure-maven-plugin:2.2
[INFO] Report Version: 1.5.4
[INFO] Results Pattern: **/allure-results
[INFO] Found [1] results directories by pattern [**/allure-results]
[INFO] /home/jaroslav/projects/idea2/ag-rest-assured/target/allure-results
[INFO] Found [0] plugins
[INFO] Generate report to /home/jaroslav/projects/idea2/ag-rest-assured/target/site/allure-report
[INFO] Report data generated successfully. Unpack report face...
[INFO] Report unpacked successfully.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 18.587 s
[INFO] Finished at: 2017-09-12T16:54:57+04:00
[INFO] Final Memory: 40M/307M

  1. Я не совсем понимаю что значит тест с импортами?

(Тест Тестовый) #5

Обновил все зависимости - установил везде вроде как последние версии. Теперь для каждого теста запросы и ответы просто дублируются. https://gyazo.com/9b5210d95d9bf68c42d02b14c600f7bc

Вот pom:

<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>rr</groupId>
    <artifactId>rest</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <properties>
 <dependencies>

        <dependency>
            <groupId>ru.yandex.qatools.allure</groupId>
            <artifactId>allure-testng-adaptor</artifactId>
            <version>${allure.version}</version>
        </dependency>
        <dependency>
            <groupId>ru.yandex.qatools.htmlelements</groupId>
            <artifactId>htmlelements-java</artifactId>
            <version>${htmlelements.java.version}</version>
        </dependency>

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.11</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>


        <dependency>
            <groupId>com.jayway.restassured</groupId>
            <artifactId>rest-assured</artifactId>
            <version>2.9.0</version>
        </dependency>

        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20160212</version>
        </dependency>

        <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
            <version>2.2.0</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.5</version>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.6.4</version>
        </dependency>

    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version> 3.7.0</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <!-- Allure -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version> 2.20</version>
                <!--<>true</inherited>-->
                <configuration>
                    <testFailureIgnore>true</testFailureIgnore>
                    <argLine>
                        -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar
                    </argLine>
                    <suiteXmlFiles>
                        <suiteXmlFile>${suiteFile}</suiteXmlFile>
                    </suiteXmlFiles>
                    <reportsDirectory>target/TestReport</reportsDirectory>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <excludeDefaults>true</excludeDefaults>
        <plugins>
            <plugin>
                <groupId>ru.yandex.qatools.allure</groupId>
                <artifactId>allure-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </reporting>
</project>


(Vasiliy Rakshin) #6

до 2.6 версии обновите


(Тест Тестовый) #7

для версии 2.6 ошибка:

[INFO] --- maven-site-plugin:3.3:site (default-site) @ ag-rest-assured ---
[INFO] configuring report plugin ru.yandex.qatools.allure:allure-maven-plugin:2.6
[WARNING] No project URL defined - decoration links will not be relativized!
[INFO] Rendering site with org.apache.maven.skins:maven-default-skin:jar:1.0 skin.
[INFO] Skipped "Allure" report, file "allure-maven-plugin.html" already exists for the English version.
[INFO] Skipped "Allure" report, file "allure-maven-plugin.html" already exists for the English version.
[INFO] Generating "Allure" report    --- allure-maven-plugin:2.6
[INFO] Generate Allure report (aggregate) with version 1.5.4
[INFO] Generate Allure report to /home/jaroslav/projects/idea2/ag-rest-assured/target/site/allure-report
[ERROR] Input directory should be not absolute for aggregate goal.
[WARNING] Allure report was skipped because there is no results directories found.

Но проблема решилась удалением (комментированием) лиснера из класса Тестов:

//@Listeners(LogListener.class)
public class TestClass extends TestBase {

Но по моему это не правильно. Вроде при использовании testNG нужно указывать лиснер для каждого класса? Попробовал удалить из зависимостей junit (его я не использую вообще) - в этом случае происходит так:
-для первого теста запрос и ответ не прикрепляются
-для второго прикрепляются от предыдущего
и так далее

В принципе можно оставить как есть - всё работает нормально, но что то кажется не так…


(Ramon Menezes) #8

вставьте лисенер в арглайн


(Mr Ds Low) #9

Не нужно вставлять лиснер для каждого класса.
Проверьте еще наличие Listener в Testng.xml.

Listener Должен быть либо как аннотация в классе, либо в testng.xml.

У меня так дубли были, потому что документацию не прочитал.