代码之家  ›  专栏  ›  技术社区  ›  paul

Jmeter:测试计划有两个线程组,但它只生成一个jtl报告

  •  0
  • paul  · 技术社区  · 6 年前

    我的Jmeter测试计划有两个线程。两个线程都需要单独的CSV(CSV参数化)文件。

    mvn verify 我要两个 .jtl 已生成文件,但仅获取一个。似乎只有一个线程在运行。当我在GUI中运行时,它运行得很好,没有maven。

    测试计划: enter image description here

    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>
    

    我已经看过这些帖子了,但运气不好:

    Can we run two thread groups parallely in a single test plan in Jmeter?

    Why only 2 out 3 JMeter Thread group execute?

    3 回复  |  直到 5 年前
        1
  •  0
  •   Dmitri T    6 年前

    只有在两种情况下才会生成2个.jtl文件:

    1. src/test/jmeter 文件夹
    2. 您启用 Aggregate Report 侦听器并将其配置为将结果保存到 ../results 以测试名称或 __threadGroupName() (该功能自 JMeter 5.0

    一般来说,在JMeter测试出现任何意外行为的情况下,请习惯于 文件,如果JMeter测试通过Maven插件执行,日志文件位于 target/jmeter/logs pom.xml文件 文件。通常,它应该包含足够的故障排除信息,以便弄清问题的根源。未执行JMeter测试或线程组的最常见原因是:

    • 提供的线程数不正确(即参数化失败)
    • 缺少依赖项文件(即CSV文件不在预期位置)
        2
  •  1
  •   dsam    5 年前

    1. 如果您想要2.jtl文件,可以在每个线程组中添加这个侦听器。如果您想要聚合结果,那么在测试计划级别添加这个侦听器。
        3
  •  0
  •   UBIK LOAD PACK    6 年前

    既然没有任何侦听器,为什么您希望生成2个jtl文件。

    在这种情况下,在非gui模式下,jmeter将只生成1个文件,这就是jmeter maven插件所做的。

    顺便说一下,您使用的是旧版本的2.1.0插件,最后一个是2.7.0。

        4
  •  0
  •   paul    6 年前

    在调试我的问题时,我发现第二个线程甚至不能在GUI模式下工作。然后我就换了电话 .csv 从线程1到2的文件,发现只有1个 .csv文件 .csv文件 src/test/jmeter/testdata 文件夹,不在里面 apache-jmeter-3.2/bin/testdata .

    .csv文件 .csv文件 找不到。

    是的,我也遇到了一些网上论坛谁会告诉你把 .csv文件 里面 apache-jmeter-3.2\bin\testdata 因此,该路径仍然是相对的,即不依赖于项目结构或操作系统。这是Jmeter中的CSV参数化。

    所以,我建议你两个都试一下,对我来说,它在里面起作用 src/test/jmeter/testdata bin