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

JMeter执行Groovy代码报No such property: Algorithm错误如何修复

问题根因

抛出javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: Algorithm for class: Script47的核心原因有两点:

  • Groovy脚本执行时不会自动导入第三方包下的自定义类,代码中直接写的Algorithm.sha256未指定全限定类名,脚本引擎无法识别该类型,最终抛出属性找不到的错误。
  • Wealdtech Hawk库中Algorithm是HawkCredentials类的内部枚举,本身就不能脱离宿主类直接独立引用。
可行修复方案

任选以下一种方式修改脚本即可解决问题:

方案1:补全枚举全限定名(无需额外导入,推荐)

直接给Algorithm补全完整类路径,不需要额外加导入语句,修改后的完整可运行代码如下:

def hawkClient = new com.wealdtech.hawk.HawkClient.Builder()
        .credentials(new com.wealdtech.hawk.HawkCredentials.Builder()
                .keyId("UB6Vs7U8r45M9")
                .key("eFzPNjBgCFAbCFbu5NTxmSkGPYxqXLK3")
                .algorithm(com.wealdtech.hawk.HawkCredentials.Algorithm.sha256)
                .build())
        .build();
def authorization = hawkClient.generateAuthorizationHeader(sampler.getUrl().toURI(), sampler.getMethod(), sampler.getArguments().getArgument(0).getValue())
vars.put('authorization', authorization)

方案2:脚本开头添加内部枚举的导入语句

在脚本最顶部添加对应枚举的导入声明,后续就可以直接使用Algorithm.sha256的简写形式,代码如下:

import com.wealdtech.hawk.HawkCredentials.Algorithm

def hawkClient = new com.wealdtech.hawk.HawkClient.Builder()
        .credentials(new com.wealdtech.hawk.HawkCredentials.Builder()
                .keyId("UB6Vs7U8r45M9")
                .key("eFzPNjBgCFAbCFbu5NTxmSkGPYxqXLK3")
                .algorithm(Algorithm.sha256)
                .build())
        .build();
def authorization = hawkClient.generateAuthorizationHeader(sampler.getUrl().toURI(), sampler.getMethod(), sampler.getArguments().getArgument(0).getValue())
vars.put('authorization', authorization)
前置校验注意点

如果修改类名后仍然报类找不到的错误,需要确认已经将Wealdtech Hawk的对应依赖jar包(含所有传递依赖)放到JMeter安装目录的lib文件夹下,重启JMeter后再执行脚本。

内容的提问来源于stack exchange,提问作者Pratik Dey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:18:06