当我在线程组上使用较大的循环计数(15个HTTP请求上的100个迭代)运行我的JMeter测试时,我会从JMeter中得到一个巨大的JTL文件。
对于我使用的‘m maven-plugin (https://github.com/jmeter-maven-plugin/jmeter-maven-plugin)来说,这是一个问题,它使用java.util.Scanner扫描JTL文件,查找"false“以查看测试是否失败。因为文件太大(1.8GB),所以我会遇到以下故障。
[ERROR] Failed to execute goal com.lazerycode.jmeter:jmeter-maven-plugin:1.10.1:jmeter (jmeter-tests) on project performance-tests: Execution jmeter-tests of goal com.lazerycode.jmeter:jmeter-maven-plugin:1.10.1:jmeter failed. IllegalArgumentException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.lazerycode.jmeter:jmeter-maven-plugin:1.10.1:jmeter (jmeter-tests) on project performance-tests: Execution jmeter-tests of goal com.lazerycode.jmeter:jmeter-maven-plugin:1.10.1:jmeter failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
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:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
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:497)
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)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution jmeter-tests of goal com.lazerycode.jmeter:jmeter-maven-plugin:1.10.1:jmeter failed.
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 20 more
Caused by: java.lang.IllegalArgumentException
at java.nio.CharBuffer.allocate(CharBuffer.java:334)
at java.util.Scanner.makeSpace(Scanner.java:840)
at java.util.Scanner.readInput(Scanner.java:795)
at java.util.Scanner.findWithinHorizon(Scanner.java:1685)
at com.lazerycode.jmeter.FailureScanner.hasTestFailed(FailureScanner.java:36)
at com.lazerycode.jmeter.JMeterMojo.parseTestResults(JMeterMojo.java:70)
at com.lazerycode.jmeter.JMeterMojo.execute(JMeterMojo.java:54)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
... 21 more我正在使用ignoreResultFailures = true作为j米-maven-plugin的参数,从而避免使用java.util.Scanner而失败。理想情况下,of maven-plugin将处理非常大的JTL文件,但JTL文件的大小似乎有点极端。
是否有任何JMeter设置可以缩小JTL文件的大小?
发布于 2016-01-18 22:45:23
检查您的测试计划是否启用了“功能测试模式”。
http://jmeter.apache.org/usermanual/listeners.html
要保存的信息是可配置的。要获得最大的信息,请选择"xml“作为格式,并在Test元素上指定"Functional”。如果未选中此框,则默认保存的数据包括时间戳(自1970年1月1日午夜以来的毫秒数)、数据类型、线程名称、标签、响应时间、消息和代码以及成功指示器。如果选中,将记录所有信息,包括完整的响应数据。
如果选中,这将导致一个大的JTL文件,因为所有冗长的请求和响应数据都会被保存。也许你打开它是为了调试你的测试而忘了关掉它?
发布于 2016-01-19 03:21:01
看起来您存储的太多了,也就是说,响应数据会造成很大的开销。因此,建议:
因此,在user.properties文件中添加接下来的2行(在JMeter安装的/bin文件夹下)
jmeter.save.saveservice.output_format=csv
jmeter.save.saveservice.response_data=false您需要重新启动JMeter来获取更改。
示例"good“结果保存配置应该如下所示:

参考资料:
https://stackoverflow.com/questions/34865446
复制相似问题