【问题标题】:java.io.FileInputStream cannot be converted to java.io.File error while executing jmeter执行jmeter时java.io.FileInputStream无法转换为java.io.File错误
【发布时间】:2018-01-03 14:47:08
【问题描述】:

我正在尝试使用 Maven 在 Java 中执行以下 sn-p。

    StandardJMeterEngine jmeter = new StandardJMeterEngine();
    JMeterUtils.loadJMeterProperties("/path/jmeter.properties");
    JMeterUtils.setJMeterHome("/path/apache-jmeter-3.3");
    JMeterUtils.initLogging();
    JMeterUtils.initLocale();

    // Initialize JMeter SaveService
    SaveService.loadProperties();

    // Load existing .jmx Test Plan
    FileInputStream in = new FileInputStream("/path/jmeter_file.jmx");


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

当我运行 mvn clean install 时,出现以下错误:

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project <project-name>: Compilation failure
    [ERROR] /path/javafile.java:[40,54] incompatible types: java.io.FileInputStream cannot be converted to java.io.File
    [ERROR]
    [ERROR] -> [Help 1]
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project <project-name>: Compilation failure
    /path/javafile.java:[40,54] incompatible types: java.io.FileInputStream cannot be converted to java.io.File

at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:955)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)

以下行发生错误: HashTree testPlanTree = SaveService.loadTree(in);

【问题讨论】:

  • 感谢 Dmitri,我也尝试过相同的方法,但在编写代码时,需要 SaveService.loadTree() 方法的 FileInputStream 参数。我也重新导入了 jar 文件,但没有运气。

标签: jmeter fileinputstream maven-compiler-plugin


【解决方案1】:

根据JMeter version 3.3 SaveService.loadTree() method 似乎接受File,而不是FileInputStream,所以:

更改这些行:

FileInputStream in = new FileInputStream("/path/jmeter_file.jmx");
HashTree testPlanTree = SaveService.loadTree(in);
in.close();

到这个:

HashTree testPlanTree = SaveService.loadTree(new File("/path/jmeter_file.jmx"));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-30
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    相关资源
    最近更新 更多