首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转换误差com.thoughtworks.xstream.converters.ConversionException

转换误差com.thoughtworks.xstream.converters.ConversionException
EN

Stack Overflow用户
提问于 2020-07-27 09:57:19
回答 1查看 1.2K关注 0票数 0

我正在尝试自动运行JMeter脚本。但我会跟着错误走。

信息2020-07-27 15:17:27.723侦听器将启动运行版本INFO 2020-07-27 15:17:27.751 jmeter.e:若要恢复到早期行为,请在org.apache.jmeter.engine.StandardJMeterEngine.configure(StandardJMeterEngine.java:176) at com.apache.maven.ApacheMavenJmeterIntegration.main(ApacheMavenJmeterIntegration.java:28)上定义jmeterengine.startlistenerslater=false INFO 2020-27 15:17:29.094 jmeter.u:在线程"main“java.lang.NullPointerException中设置en_US异常区域设置。

代码

代码语言:javascript
复制
package com.apache.maven;

import java.io.FileInputStream;

import org.apache.jmeter.engine.StandardJMeterEngine;
import org.apache.jmeter.save.SaveService;
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jorphan.collections.HashTree;

public class ApacheMavenJmeterIntegration {

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub

        StandardJMeterEngine jmeter = new StandardJMeterEngine();

        JMeterUtils.loadJMeterProperties("F:/apache-jmeter-5.3/bin/jmeter.properties");
        JMeterUtils.setJMeterHome("F:/apache-jmeter-5.3");
        JMeterUtils.initLocale();
        JMeterUtils.initLogging();

        SaveService.loadProperties();
        FileInputStream in = new FileInputStream("F:\\apache-maven-3.6.3\\bin\\src\\test\\jmeter\\PlanPackage.jmx");

        HashTree testPlanTree = SaveService.loadTree(in);
        in.close();

        jmeter.configure(testPlanTree);
        jmeter.run();

    }
}

pom.xml

代码语言:javascript
复制
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.apache.maven</groupId>
    <artifactId>com.apache.maven</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-dependency-plugin -->
        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.1.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_core -->
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_core</artifactId>
            <version>2.6</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.jmeter/ApacheJMeter_http -->
        <dependency>
            <groupId>org.apache.jmeter</groupId>
            <artifactId>ApacheJMeter_http</artifactId>
            <version>2.8</version>
        </dependency>

    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>3.0.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>java</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <mainClass>com.apache.maven.ApacheMaven</mainClass>
                    <arguments>
                        <argument>foo</argument>
                        <argument>bar</argument>
                    </arguments>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

jmeter.log

代码语言:javascript
复制
2020/07/27 15:17:35 INFO  - jmeter.save.SaveService: Testplan (JMX) version: 2.2. Testlog (JTL) version: 2.2 
2020/07/27 15:17:35 INFO  - jmeter.save.SaveService: Using SaveService properties file encoding UTF-8 
2020/07/27 15:17:35 INFO  - jmeter.save.SaveService: Using SaveService properties version 5.0 
2020/07/27 15:17:35 WARN  - jmeter.save.SaveService: Bad _version - expected 2.2, found 5.0. 
2020/07/27 15:17:35 INFO  - jmeter.save.SaveService: All converter versions present and correct 
2020/07/27 15:17:37 ERROR - jmeter.save.SaveService: Conversion error com.thoughtworks.xstream.converters.ConversionException: org/apache/jmeter/testelement/TestStateListener : org/apache/jmeter/testelement/TestStateListener
---- Debugging information ----
message             : org/apache/jmeter/testelement/TestStateListener
cause-exception     : java.lang.NoClassDefFoundError
cause-message       : org/apache/jmeter/testelement/TestStateListener
first-jmeter-class  : org.apache.jmeter.protocol.http.sampler.HTTPSamplerBaseConverter.canConvert(HTTPSamplerBaseConverter.java:52)
class               : org.apache.jmeter.save.ScriptWrapper
required-type       : org.apache.jmeter.save.ScriptWrapper
path                : /jmeterTestPlan/hashTree
line number         : 3
------------------------------- 
EN

回答 1

Stack Overflow用户

发布于 2020-07-27 15:24:03

如果您需要在JMeter的帮助下运行JMeter Maven插件测试--您不需要编写任何代码,只需使用以下pom.xml文件:

代码语言:javascript
复制
<?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>org.example</groupId>
    <artifactId>jmeter-maven</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>3.1.1</version>
                <executions>
                    <!-- Generate JMeter configuration -->
                    <execution>
                        <id>configuration</id>
                        <goals>
                            <goal>configure</goal>
                        </goals>
                    </execution>
                    <!-- Run JMeter tests -->
                    <execution>
                        <id>jmeter-tests</id>
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                    </execution>
                    <!-- Fail build on errors in test -->
                    <execution>
                        <id>jmeter-check-results</id>
                        <goals>
                            <goal>results</goal>
                        </goals>
                    </execution>
                </executions>
                <!-- Generate HTML Reporting Dashboard -->
                <configuration>
                    <generateReports>true</generateReports>
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>

并将您的.jmx测试脚本放在相对于pom.xml的src/test/jmeter文件夹下,以便您的项目看起来如下:

代码语言:javascript
复制
- pom.xml
- src
  - test
     - jmeter
       - your-test.jmx

更多信息:如何使用JMeter Maven插件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63112888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档