JMeter未知参数?t

14

我想在非GUI模式下运行JMeter(从命令行)。

我在许多地方看到过,包括官方文档在内,以下命令将实现我的目的:

jmeter -n –t test.jmx -l testresults.jtl

然而,我在“t”参数上遇到了非法参数异常。请参见下面的控制台输出:

Console screenshot showing output from the command

以下是保存在jmeter.log中的输出:
2016/08/09 14:41:59 INFO  - jmeter.util.JMeterUtils: Setting Locale to en_GB 
2016/08/09 14:41:59 INFO  - jmeter.JMeter: Loading user properties from: C:\apache-jmeter-3.0_src\apache-jmeter-3.0\bin\user.properties 
2016/08/09 14:41:59 INFO  - jmeter.JMeter: Loading system properties from: C:\apache-jmeter-3.0_src\apache-jmeter-3.0\bin\system.properties 
2016/08/09 14:41:59 FATAL - jmeter.JMeter: An error occurred:  java.lang.IllegalArgumentException: Unknown arg: –t
    at org.apache.jmeter.JMeter.initializeProperties(JMeter.java:746)
    at org.apache.jmeter.JMeter.start(JMeter.java:385)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.jmeter.NewDriver.main(NewDriver.java:259)

2
将您的脚本文件“TwoMinuteTest.jmx”放置到JMeter bin目录中,然后尝试运行以下命令:“jmeter -n -t TwoMinuteTest.jmx -l testresults.jtl”。 - Masud Jahan
2
我发誓我之前试过这个方法,但是它没有起作用。我刚刚再次尝试了一遍,还是不起作用。然后我将"-t"删除后重新输入,结果它就奏效了!!是否在输入命令和从文本编辑器中复制命令之间有微妙的差别? - dahui
如果您愿意,可以将此内容放入答案中,我会在有机会时进行标记。 - dahui
10个回答

28

所以问题在于我如何将命令输入到命令行中。

当我复制并粘贴我的命令时,它是从一个网页复制到记事本,然后再粘贴到命令行中的。我错误地认为记事本会编码正确的字符。

这有点令人困惑,因为“-n”起作用了,但“-t”没有。这是个愚蠢的错误!


2
将你的脚本文件"TwoMinuteTest.jmx"放置到JMeter的bin目录中,然后尝试运行以下命令:jmeter -n –t TwoMinuteTest.jmx -l testresults.jtl。请确保严格按照格式要求进行操作,不要修改或删除任何HTML标签。

嗨,谢谢你的回答。我已经测试过了,问题出现在我尝试将命令复制粘贴到控制台时。 - dahui

2
我刚遇到同样的错误,事实证明,与常规的连字符(即“减号”)不同,该字符是一个短横线,它们看起来非常相似,以至于我没有注意到。
事实证明,JMeter的Linux版本(或者是Linux本身)非常挑剔,只接受普通的常规连字符。而JMeter的Windows版本则都可以处理。我从网站上的命令行示例中复制粘贴,我想那个人在Windows上运行了它,而没有在Linux上尝试过。
我认为这也是原始帖子作者遇到的相同问题。我将其作为答案发布,因为它仍然会发生,并且没有任何答案提到可能使用了错误的字符。

1
你必须将.jmx文件保存在jmeter bin文件夹中,而日志文件的位置可以更改到任何你想要的地方。
jmeter -n –t TwoMinuteTest.jmx -l C:\users\desktop\Log.Txt -- 将创建一个文本文件作为日志。
jmeter -n –t TwoMinuteTest.jmx -l C:\users\desktop\Log.Csv -- 将创建一个Csv文件作为日志。
jmeter -n –t TwoMinuteTest.jmx -l C:\users\desktop\Log.Xls -- 将创建一个Xls文件作为日志。 如果日志文件不存在于指定位置,则会在运行测试时创建一个新文件。

1

打开.bat文件,在notepad++中选择菜单中的编码为UTF-8进行编码,如果您的文件中含有任何特殊字符,请使用以下格式进行校正: jmeter -n –t "testscript.jmx" -l "results_test.jtl"


0

这个完美地运行了:

jmeter -n -t "F:\WebsitePerformanceTest.jmx" -l "F:\TestResults.csv" -e -o "F:\Reports"

2
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

0

之前我的 TimersTestPlan.jmx 文件名中有一个空格,像这样 Timers TestPlan.jmx。 当我移除了这个空格后,在 Windows 中它就可以正常工作了。

jmeter -n -t C:\FREESOFT\JmterPlanLoc\TimersTestPlan.jmx -l C:\FREESOFT\JmterPlanLoc\Export\Clreport.csv

0

提交你的

  1. 文件扩展名示例空格,双点
  2. 安装JMeter插件
  3. Java JDK和JMeter版本不匹配。

你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community

0

改为:

jmeter -n –t test.jmx -l testresults.jtl

你应该使用:

jmeter -n –t "test.jmx" -l "testresults.jtl"

这对我在编程时非常有帮助

未知参数错误级别1。


-1

不要:

jmeter -n –t test.jmx -l testresults.jtl

你应该使用:

jmeter -n –t "test.jmx" -l "testresults.jtl"

你能解释一下这个为什么有帮助吗? - Yunnosch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接