#groovy #jmeter #jwt #load-testing
Вопрос:
Я новичок в JMeter.Я хочу выполнить некоторое нагрузочное тестирование на одном из своих приложений. Я хочу расшифровать токен JWT, и оттуда мне нужно получить идентификатор сеанса, и он должен быть добавлен в переменную 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
Ответ №1:
Вам нужно иметь java-jwt-x.xx.x.jar
вместе с его зависимостями путь к классу JMeter перед запуском скрипта.
Для последней стабильной версии 3.18.1 вам потребуется следующее .:
- 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 Classpath, вам придется перезапустить JMeter, чтобы забрать библиотеки
После этого вы сможете использовать код, который вы скопировали и вставили откуда-то:
Демонстрация с использованием токена JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
от https://jwt.io/ веб-страница:
Дополнительная информация о скриптах Groovy в JMeter: Apache Groovy — Почему и как Вы должны его использовать
Комментарии:
1. Добавлено java-jwt-3.18.1.jar в папке lib.По-прежнему заполняется та же проблема
2. Решил эту проблему, добавив файл в /usr/локальный/Cellar/jmeter/5.3/libexec/lib путь