【问题标题】:Jmeter with maven and using external groovy scripts issues with groovy imports带有 maven 的 Jmeter 和使用 groovy 导入的外部 groovy 脚本问题
【发布时间】:2019-06-23 18:10:24
【问题描述】:

我想使用 groovy 脚本从 maven 执行 jmeter 测试,但出现以下错误。为了设置 jmeter 和 maven,我做了here 的描述。

我应该将我的 groovy 函数和实体打包到一个 jar 中并复制到 jmeter 的 lib 目录中,并且只将这些 groovy 脚本放在包含采样器代码的 jmx 文件旁边吗?

2019-06-22 17:40:17,714 INFO o.a.j.s.SampleResult: sampleresult.useNanoTime=true
2019-06-22 17:40:17,714 INFO o.a.j.s.SampleResult: sampleresult.nanoThreadSleep=5000
2019-06-22 17:40:17,744 ERROR o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script CreateUsers, message: javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script4.groovy: 4: unable to resolve class com.google.gson.Gson
 @ line 4, column 1.
   import com.google.gson.Gson;
   ^

【问题讨论】:

    标签: maven groovy jmeter gson


    【解决方案1】:

    你需要在你的 pom.xml 中添加Gson dependency

    <dependency>
    <groupId>com.google</groupId>
    <artifactId>gson</artifactId>
    <version>2.1.0</version>
    </dependency>
    

    【讨论】:

    • 没用,请看下面我的回答。
    【解决方案2】:

    我找到了答案:

    • 我需要将我想在测试中使用的库打包到 jar 中,并将它们放入 jmeter/lib 目录中
    • 我必须对齐 Sampler 脚本路径,以便 jmeter 可以使用它们

    第一个解决方案来自jmeter-maven-plugin doc:

    <project>
        [...]
            <build>
                <plugins>
                    <plugin>
                        <groupId>com.lazerycode.jmeter</groupId>
                        <artifactId>jmeter-maven-plugin</artifactId>
                        <version>USE LAST VERSION</version>
                        <executions>
                            <execution>
                                <id>jmeter-tests</id>
                                <goals>
                                    <goal>jmeter</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <testPlanLibraries>
                                 <artifact>org.apache.activemq:activemq-spring:5.15.2</artifact>
                     <artifact>org.apache.activemq:activemq-client:5.15.2</artifact>
                     <artifact>org.apache.activemq:activemq-broker:5.15.2</artifact>
                    </testPlanLibraries>
                            <excludedArtifacts>
                                 <exclusion>com.sun.jdmk:jmxtools</exclusion>
                                 <exclusion>com.sun.jmx:jmxri</exclusion>
                </excludedArtifacts>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        [...]
    </project>
    

    第二种解决方案是我需要将 Sampler 脚本复制到 jmx 文件旁边。 Maven 可以使用maven-resource-plugin 轻松做到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      相关资源
      最近更新 更多