无法使用后处理器在 JMeter 中解码 jwt 令牌

Not able to decode jwt token in JMeter using PostProcessor

我是 JMeter.I 的新手,想对我的一个应用程序进行一些负载测试。 我想解码 JWT 令牌,需要从那里获取会话 ID,并且必须将其附加到 JMeter 变量。

下面是我的代码

import com.auth0.jwt.*

log.info("Hello")
def jwt = JWT.decode(vars.get('idToken'))
log.info(jwt)

vars.put('sessionId', jwt.getClaim('sessionId').asString())
log.info(jwt.getClaim('sessionId').asString())

执行此代码时出现一些错误

下面是异常信息

javax.script.ScriptException: groovy.lang.MissingPropertyException: No such property: JWT for class: Script11
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:320) ~[groovy-jsr223-3.0.7.jar:3.0.7]
    at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:71) ~[groovy-jsr223-3.0.7.jar:3.0.7]
    at javax.script.CompiledScript.eval(CompiledScript.java:93) ~[java.scripting:?]
    at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:217) ~[ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.extractor.JSR223PostProcessor.process(JSR223PostProcessor.java:45) [ApacheJMeter_components.jar:5.4.1]
    at org.apache.jmeter.threads.JMeterThread.runPostProcessors(JMeterThread.java:955) [ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:573) [ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489) [ApacheJMeter_core.jar:5.4.1]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256) [ApacheJMeter_core.jar:5.4.1]
    at java.lang.Thread.run(Thread.java:831) [?:?]

需要解决此问题的建议。

JMeter 版本:5.4

在 运行 脚本之前,您需要 java-jwt-x.xx.x.jar 及其 dependencies in JMeter Classpath

对于 latest stable version 3.18.1,您将需要以下 .jars:

  • jackson-annotations-2.11.0.jar
  • jackson-core-2.11.0.jar
  • jackson-databind-2.11.0.jar
  • java-jwt-3.18.1.jar

如果您已经在 J​​Meter 类路径中拥有它们,您将必须重新启动 JMeter 以选择这些库

完成后,您应该可以使用从某处复制和粘贴的代码:

使用来自 https://jwt.io/ 网页的 JWT 令牌 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c 的演示:

有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - Why and How You Should Use It