记一次jmeter启动报错问题及解决办法和解决思路

问题来源:

www.apache.org官网下载了最新jmeter5.3,在个人开发机上windows8.1下,启动bin/jmeter.bat报错

错误信息如下:

解决思路:

1、可能是自身环境问题

百度一下该错误(谷歌又被墙了,无奈啊),试了几个靠前一点的帖子, 没一个能解决我的问题

2、查看jmeter报错日志:

通过bin/jmeter.log我们可以看到错误日志信息如下:

2020-09-01 19:39:30,901 ERROR o.a.j.JMeter: An error occurred: 
java.lang.IllegalArgumentException: Unknown arg: –
	at org.apache.jmeter.JMeter.initializeProperties(JMeter.java:850) ~[ApacheJMeter_core.jar:5.3]
	at org.apache.jmeter.JMeter.start(JMeter.java:463) [ApacheJMeter_core.jar:5.3]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_144]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_144]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_144]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_144]
	at org.apache.jmeter.NewDriver.main(NewDriver.java:252) [ApacheJMeter.jar:5.3]

由此可知系统启动时初始化属性失败

3、从官网将jmeter5.3的源码包down下来并查看那个报错类的源码: JMeter.java

报错行数是850, 我们看看报错地方的代码是怎么写的

List<CLOption> clOptions = parser.getArguments();
        for (CLOption option : clOptions) {
            String name = option.getArgument(0);
            String value = option.getArgument(1);

            switch (option.getDescriptor().getId()) {

            // Should not have any text arguments
            case CLOption.TEXT_ARGUMENT:
                throw new IllegalArgumentException("Unknown arg: " + option.getArgument());

还没看代码,前面一行注释: Should not have any text arguments, 不应该有任何文本参数

嗷,好吧,咱们看看启动脚本加了哪些参数吧

4、打开bin/jmeter.bat我们找到启动的地方

找啊找,看到200行的时候发现这么一句

%JM_START% "%JM_LAUNCH%" %ARGS% %JVM_ARGS% -jar "%JMETER_BIN%ApacheJMeter.jar" %JMETER_CMD_LINE_ARGS%

​​​​​​嗯,应该就是你了,看看这条命令,启动参数后面就一个JMETER_CMD_LINE_ARGS,既然这个参数有问题,那我们就打印出来看下吧,在这行代码前面,我们输入:echo %JMETER_CMD_LINE_ARGS% ,然后保存重新点击bin/jmeter.bat执行一下

发现打印出来的这个参数内容就是报错时候的参数内容"-"

既然这样,那我们去掉该参数试试

 

5、修改启动脚本,去掉参数,修改后内容

%JM_START% "%JM_LAUNCH%" %ARGS% %JVM_ARGS% -jar "%JMETER_BIN%ApacheJMeter.jar"

​保存后再次启动bin/jmeter.bat

发现ok了

我又重新找到启动脚本定义该变量的地方:141行,发现如下说明:

:winNT1
rem On NT/2K grab all arguments at once
set JMETER_CMD_LINE_ARGS=%*

意思是NT/2K下,一次性获取所有参数,没看明白啥意思,但感觉我应该是不需要这个参数,百度也没找到合理的解释,暂时先这么地吧

 

### 回答1: JMeter启动报错errorlevel=2通常是由于JMeter启动时出现了错误,导致JMeter无法正常运行。这种错误可能是由于JMeter配置文件错误、JMeter版本不兼容、JMeter插件冲突等原因引起的。 要解决这个问题,可以尝试以下几个步骤: 1. 检查JMeter配置文件是否正确,特别是jmeter.properties和user.properties文件。 2. 确认JMeter版本是否与插件兼容,如果不兼容,可以尝试升级或降级JMeter版本。 3. 禁用所有JMeter插件,然后逐个启用,找出可能引起冲突的插件。 4. 检查JMeter启动脚本是否正确,特别是JAVA_HOME和PATH环境变量是否正确设置。 如果以上步骤都无法解决问题,可以尝试重新安装JMeter或者联系JMeter官方支持团队寻求帮助。 ### 回答2: JMeter是一种功能强大的测试工具,通常用于测试Web应用程序和Web服务的性能和负载。但是,在使用JMeter时,有时会遇到一些错误。其中一个常见的错误是“启动报错errorlevel=2”。 该错误通常是由于以下原因之一引起的: 1. Java环境未安装或未配置正确:JMeter是基于Java开发的,因此需要安装并正确地配置Java环境。如果Java环境未安装或未配置正确,就会出现此错误。 2. JMeter安装目录中缺少必要的文件:JMeter启动时需要访问一些必要的文件和资源。如果这些文件不在安装目录中,就会导致启动错误。 3. 内存不足:JMeter需要足够的内存才能正常运行。如果您同时运行其他内存占用高的应用程序,并且计算机的内存不足,则可能会出现此错误。 针对这个错误,可以采取以下步骤进行诊断和解决: 1. 确定Java环境是否已正确安装并配置。 2. 检查JMeter安装目录中是否存在必要的文件和资源。 3. 关闭其他内存占用高的应用程序,释放更多的内存。 如果做出以上尝试后,仍然遇到JMeter启动报错errorlevel=2问题,可以尝试重新安装JMeter并进行新的测试。如果问题仍然存在,可以查看JMeter官方文档或向社区寻求帮助。 ### 回答3: jmeter启动报错errorlevel=2的原因可能是多种多样的,例如系统环境配置错误、启动参数设置错误、jmeter安装路径问题等等。 首先可以检查一下自己的系统环境是否满足jmeter的要求,比如Java版本是否正确,是否安装了必要的软件包等等。如果环境配置正确,那么再检查一下启动参数是否设置正确,例如设置了正确的路径、启动了正确的脚本等等。 如果以上两个方面都没有问题,那么可以考虑检查一下jmeter的安装路径是否正确,并且是否有足够的权限来执行相关操作。此外,还可以尝试清除一下jmeter的缓存,以确保启动时能够正常运行。 最后,如果以上方法都没有解决问题,那么可以考虑重新安装jmeter,或者联系jmeter的开发者或社区寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值