【问题标题】:Maven+jmeter not recognizing json path extractorMaven+jmeter 无法识别 json 路径提取器
【发布时间】:2015-09-09 10:15:00
【问题描述】:

我有一个 jmx 文件,其中包含 JSON 路径提取器,它解析其中一个请求的 JSON 响应。当我在 GUI 模式下运行这个测试计划时,它运行得非常好。 但是当我使用 lazerycode 插件通过 maven 运行它时,同样运行不正常。 我在 POM.xml 中添加了依赖项:

        <dependency>
            <groupId>kg.apc</groupId>
            <artifactId>jmeter-plugins-extras-libs</artifactId>
            <version>1.3.0</version>
</dependency>
<dependency>
            <groupId>kg.apc</groupId>
            <artifactId>jmeter-plugins</artifactId>
            <version>1.0.0</version><!-- old:1.0.0 -->
            <exclusions>
                <exclusion>
                    <groupId>kg.apc</groupId>
                    <artifactId>perfmon</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.jmeter</groupId>
                    <artifactId>jorphan</artifactId>
                </exclusion> 
                <exclusion>
                    <groupId>org.apache.hbase</groupId>
                    <artifactId>hbase</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.hadoop</groupId>
                    <artifactId>hadoop-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

而 Jmeterplugins 是:

<jmeterPlugins>                 
 <plugin>
 <groupId>kg.apc</groupId>
 <artifactId>jmeter-plugins-extras-libs</artifactId>
 </plugin>
<plugin>
<groupId>kg.apc</groupId>
<artifactId>jmeter-plugins</artifactId>
</plugin>

但我在运行 maven 时遇到以下错误:mvn clean verify

     [info] Error in NonGUIDriver java.lang.IllegalArgumentException: Problem loading
 XML from:'C:\Users\user1\workspace\loadtest\loadTestModule\src\test
\jmeter\testscript.jmx', conversion error com.thoughtworks.xst
ream.converters.ConversionException: com.atlantbh.jmeter.plugins.jsonutils.jsonp
athextractor.JSONPathExtractor : com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor

我可以在 com/atlantbh/jmeter/plugins/jsonutils/jsonpathextractor/gui 下的 jmeter-plugins-1.0.0.jar 中看到 JSONPathExtractorGui.class。

Jmx 对 JSON 路径提取逻辑有以下几行:

<hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="TestPlan.comments">$..url[*]</stringProp>
        <stringProp name="VAR">url</stringProp>
        <stringProp name="JSONPATH">$..url[*]</stringProp>
        <stringProp name="DEFAULT"></stringProp>
        <stringProp name="VARIABLE"></stringProp>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>

这个问题的解决方法是什么?

【问题讨论】:

    标签: maven jmeter


    【解决方案1】:

    我也遇到了完全相同的错误。最后,它在以下之后修复:
    https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki/Adding%20Additional%20Libraries%20To%20The%20Classpath#adding-jars-to-the-libext-directory
    (阅读以下部分:将 jar 添加到 /lib/ext 目录

    我所做的是:
    1.在jmeter-maven-plugin的“execution”里面的“configuration”里面添加插件jmeter-plugins-extras-libs
    2.在“executions”之外,在“dependencies”内添加依赖jmeter-plugins-extras-libs

    这是我的 pom 中的相关部分:

       ...
       <plugin>
            <groupId>com.lazerycode.jmeter</groupId>
            <artifactId>jmeter-maven-plugin</artifactId>
            <version>1.10.1</version>
            <executions>
              <execution>
                <id>jmeter-tests</id>
                <phase>verify</phase>
                <goals>
                  <goal>jmeter</goal>
                </goals>
                <configuration>
                  <jmeterPlugins>
                    <plugin>
                      <groupId>kg.apc</groupId>
                      <artifactId>jmeter-plugins-extras-libs</artifactId>
                    </plugin>
                  </jmeterPlugins>
    
                  <testResultsTimestamp>false</testResultsTimestamp>
                  <showthroughput>true</showthroughput>
                </configuration>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>kg.apc</groupId>
                <artifactId>jmeter-plugins-extras-libs</artifactId>
                <version>1.3.1</version>
              </dependency>
            </dependencies>
          ...
    

    它奏效了。我没有添加 jmeter-plugins,也不是必需的。我希望它对你有用,如果还没有的话。

    【讨论】:

      【解决方案2】:

      您可能还需要添加其他 jmeter 插件:

      <jmeterPlugins>
      <plugin>
        <groupId>kg.apc</groupId>
        <artifactId>jmeter-plugins-common</artifactId>
      </plugin>
      <plugin>
        <groupId>kg.apc</groupId>
        <artifactId>jmeter-plugins-standard</artifactId>
      </plugin>
      <plugin>
        <groupId>kg.apc</groupId>
        <artifactId>jmeter-plugins-extras</artifactId>
      </plugin>
      <plugin>
        <groupId>kg.apc</groupId>
        <artifactId>jmeter-plugins-extras-libs</artifactId>
      </plugin>
      </jmeterPlugins>
      

      【讨论】:

      • 我加了上面的插件,还是没有解决。运行后问题依旧存在:mvn clean verify.
      • @katebl58 你让 Maven+jmeter 识别 json 路径提取器了吗?如果是,您能否提供更多详细信息。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 2018-05-25
      相关资源
      最近更新 更多