Jmeter: у плана тестирования есть две группы потоков, но он сгенерировал только 1 отчет jtl

Мой план испытаний Jmeter состоит из двух потоков. Для обоих потоков требуются отдельные файлы CSV (параметризация CSV).

В конце теста mvn verify Я ожидаю два .jtl файлы сгенерированы, но получают только один. Кажется, только 1 поток работает. Когда я бегу в графическом интерфейсе, то он работает нормально, без Maven.

План испытаний:

pom.xml

<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>com.demo.performancetesting</groupId>
    <artifactId>demo-performance-testing</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>2.1.0</version>
                <executions>
                    <execution>
                        <id>jmeter-tests</id>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>de.codecentric</groupId>
                <artifactId>jmeter-graph-maven-plugin</artifactId>
                <version>0.1.0</version>
                <configuration>
                    <inputFile>${project.build.directory}/jmeter/results/*.jtl</inputFile>
                    <graphs>
                        <graph>
                            <pluginType>ResponseTimesOverTime</pluginType>
                            <width>800</width>
                            <height>600</height>
                            <outputFile>${project.build.directory}/jmeter/results/BlazeDemoRequest.png</outputFile>
                        </graph>
                    </graphs>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Я уже прошел эти посты, но не повезло:

Можем ли мы запустить две группы потоков параллельно в одном плане тестирования в Jmeter?

Почему выполняется только 2 из 3 групп JMeter Thread?

Я использую Windows 7, Maven 3, плагин Jmeter Maven

3 ответа

Решение

У вас будет 2 файла.jtl, сгенерированных только в 2 случаях:

  1. У вас есть 2 .jmx скрипта под src/test/jmeter папка
  2. Вы включаете прослушиватели Aggregate Report и настраиваете их для сохранения результатов в ../results папка с префиксом имени теста или __threadGroupName () (функция доступна с JMeter 5.0)

В общем, в случае непредвиденного поведения вашего теста JMeter привыкнуть к просмотру файла jmeter.log, в случае выполнения тестов JMeter с помощью плагина Maven файлы журналов находятся в target/jmeter/logs папка относительно вашего основного файла pom.xml. Обычно он должен содержать достаточно информации для устранения неполадок, чтобы добраться до сути проблемы. Наиболее распространенная причина, по которой тест JMeter или группы потоков не выполняются:

  • предоставлено неверное количество потоков (т. е. неудачная параметризация)
  • отсутствует файл зависимостей (т. е. файл CSV отсутствует в ожидаемом месте)

Вы можете отключить всех слушателей во время выполнения тестов, как это рекомендуется.

  1. И просто добавьте прослушиватель "Simple Data Writer" и укажите место для сохранения результатов. Рекомендуется с именем файла с типом файла.jtl.
  2. если вам нужны 2 файла.jtl, вы можете добавить этого слушателя в каждую группу потоков. Если вам нужны агрегированные результаты, добавьте этого слушателя на уровне плана тестирования.
  3. После завершения тестового запуска вы можете просмотреть этот файл.jtl в любом желаемом слушателе, он работает нормально.

Почему вы ожидаете 2 сгенерированных файла JTL, так как у вас нет слушателя.

В этом случае в режиме без графического интерфейса jmeter сгенерирует только 1 файл, это то, что делает плагин jmeter-maven-plugin.

Кстати, вы используете старую версию плагина 2.1.0, последняя версия 2.7.0.

При отладке моей проблемы я обнаружил, что 2-й поток даже не работал в режиме графического интерфейса. Затем я переключил .csv файлы из темы с 1 по 2, обнаружили, что только 1 .csv файл всегда работает. Наконец, после дальнейших раскопок я обнаружил, что для запуска вашего .csv в необходимости быть в src/test/jmeter/testdata папка а не внутри apache-jmeter-3.2/bin/testdata,

Ответ: Второй поток не работал, потому что он использовал неправильно .csv, Чтобы выяснить это, нажмите на желтый треугольник в верхнем правом углу в графическом интерфейсе Jmeter. Переключает отображение логов. Эти журналы показали мне, что ошибка .csv не был найден.

Да, я также сталкивался с несколькими онлайн-форумами, которые сказали бы вам поставить .csv внутри apache-jmeter-3.2\bin\testdata так что путь остается относительным, т.е. не зависит от структуры проекта или ОС. Это параметризация CSV в Jmeter.

Итак, я бы предложил попробовать оба, для меня это сработало внутри src/test/jmeter/testdata не Jmeter bin папка.

Другие вопросы по тегам