无法使用后处理器在 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
如果您已经在 JMeter 类路径中拥有它们,您将必须重新启动 JMeter 以选择这些库
完成后,您应该可以使用从某处复制和粘贴的代码:
使用来自 https://jwt.io/ 网页的 JWT 令牌 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
的演示:
有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - Why and How You Should Use It
我是 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
如果您已经在 JMeter 类路径中拥有它们,您将必须重新启动 JMeter 以选择这些库
完成后,您应该可以使用从某处复制和粘贴的代码:
使用来自 https://jwt.io/ 网页的 JWT 令牌 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
的演示:
有关 JMeter 中 Groovy 脚本的更多信息:Apache Groovy - Why and How You Should Use It