You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java升级至17后JMeter报Unsupported class file major version 61错误的解决方法

问题:Java升级至17后JMeter JSR223断言报错Unsupported class file major version 61

近期将Java从1.8版本升级至17版本后,JMeter中的JSR223断言出现错误,此前脚本可正常运行。

错误详情

2023-03-13 12:48:59,523 ERROR o.a.j.a.JSR223Assertion: Problem in JSR223 script: Status-Code-Checker
javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
General error during conversion: Unsupported class file major version 61

java.lang.IllegalArgumentException: Unsupported class file major version 61
at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:196)
at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:177)
at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:163)
at groovyjarjarasm.asm.ClassReader.<init>(ClassReader.java:284)
at org.codehaus.groovy.ast.decompiled.AsmDecompiler.parseClass(AsmDecompiler.java:81)
at org.codehaus.groovy.control.ClassNodeResolver.findDecompiled(ClassNodeResolver.java:251)
at org.codehaus.groovy.control.ClassNodeResolver.tryAsLoaderClassOrScript(ClassNodeResolver.java:189)
at org.codehaus.groovy.control.ClassNodeResolver.findClassNode(ClassNodeResolver.java:169)
at org.codehaus.groovy.control.ClassNodeResolver.resolveName(ClassNodeResolver.java:125)
at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClassNullable(AsmReferenceResolver.java:57)
at org.codehaus.groovy.ast.decompiled.AsmReferenceResolver.resolveClass(AsmReferenceResolver.java:44)
at org.codehaus.groovy.ast.decompiled.ClassSignatureParser.configureClass(ClassSignatureParser.java:42)
at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.lazyInitSupers(DecompiledClassNode.java:185)
at org.codehaus.groovy.ast.decompiled.DecompiledClassNode.getGenericsTypes(DecompiledClassNode.java:80)
at org.codehaus.groovy.control.GenericsVisitor.checkGenericsUsage(GenericsVisitor.java:131)
at org.codehaus.groovy.control.GenericsVisitor.checkGenericsUsage(GenericsVisitor.java:125)
at org.codehaus.groovy.control.GenericsVisitor.visitDeclarationExpression(GenericsVisitor.java:104)
at org.codehaus.groovy.ast.expr.DeclarationExpression.visit(DeclarationExpression.java:89)
at org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:117)
at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:200)
at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40)

JSR223断言脚本

import org.apache.jmeter.assertions.AssertionResult;

def failureMessage = "";
def resCode = SampleResult.getResponseCode();

if (!resCode.equals("200")) {
  failureMessage = "Got Response Code :" + resCode;
  AssertionResult result = new AssertionResult("Expected Response 200");
  result.setFailure(true);
  result.setFailureMessage(failureMessage);
  prev.addAssertionResult(result);
  prev.setSuccessful(false);
  SampleResult.setStartNextThreadLoop(true);
} else {

}

当前Java版本

java version "17.0.6" 2023-01-17 LTS
Java(TM) SE Runtime Environment (build 17.0.6+9-LTS-190)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.6+9-LTS-190, mixed mode, sharing)

解决方案

核心原因

Groovy版本过低,不支持Java 17对应的类文件版本(major version 61)。旧版Groovy无法解析Java 17编译的字节码,导致编译错误。

具体解决步骤

  1. 升级JMeter版本
    使用JMeter 5.5及以上版本,该版本开始正式支持Java 8至17,内置的Groovy版本已更新到兼容Java 17的版本。

  2. 手动升级Groovy库(不升级JMeter时适用)

    • 下载兼容Java 17的Groovy版本(推荐Groovy 4.x系列,如groovy-all-4.0.10.jar)。
    • 进入JMeter安装目录下的lib文件夹,删除所有以groovy-开头的旧jar包。
    • 将新下载的Groovy jar包放入lib文件夹,重启JMeter后重新运行脚本。
  3. 脚本优化(可选)
    简化脚本,利用JMeter内置变量prev(等同于SampleResult),代码更简洁:

    if (prev.getResponseCode() != "200") {
        def failureMessage = "Got Response Code: ${prev.getResponseCode()}"
        def result = new org.apache.jmeter.assertions.AssertionResult("Expected Response 200")
        result.setFailure(true)
        result.setFailureMessage(failureMessage)
        prev.addAssertionResult(result)
        prev.setSuccessful(false)
        prev.setStartNextThreadLoop(true)
    }
    

内容的提问来源于stack exchange,提问作者Jyoti Prakash Mallick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 01:27:56