Как правильно извлечь ключ.pem из ответа на запрос с помощью экстрактора JSON
Я использую Jmeter JSON для JSON, который выглядит следующим образом
{"type":"rpc","tid":7,"action":"SecurityManager","method":"getAuthenticationKey","result":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAydpVbheWPx4ZMbxJ8yCm\ndcP2EaRZD2R4PUmuFhdDdvpxT\/so00\/22orFQMgw8hrgEZ07ISzarOlclchm7DtF\nzxUzjGon1d5OJ2\/61niT+bAyuykn7y63\/BEtGS3KsR9ez3Ds+JR04Tca\/ajUYAIo\nrtAdCuvQuWkk4ZmZWywa7n899KOndL8S3G0R9Bex5XwfXJoE2BC6Ww75gwkzANFX\nIqkTYeepIMai3B8H31VIW2aJXURbjgN4yrk4sOy5a5JqnPEeCPKJR3nCrZDZGG06\ncoq0swW8oegNI9SFsiIqpDQ6Fi4WqqH5EMNu6FrkF3HAqwwyGljnogGNdnkwajiu\nCQIDAQAB\n-----END PUBLIC KEY-----\n"}
Я пытаюсь использовать это значение (например, просто показать его)
log.info("${key}")
но я получаю ошибку
o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script JSR223 Sampler, message: javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script26.groovy: 8: expecting anything but ''\n''; got it anyway @ line 8, column 39.
log.info("-----BEGIN PUBLIC KEY-----
Есть что-то, что я не правильно делаю?
2 ответа
Вы никогда не должны использовать ${} в скрипте Groovy в JMeter.
Вместо этого сделайте это:
log.info ("Получил ключ:{}", vars["ключ"]);
При условии, что ваша переменная называется ключом
И вот как вы должны настроить JSON Extractor:
Поскольку вы уже используете тестовые элементы JSR223, вам не нужен JSON Extractor, ключ PEM можно извлечь и распечатать за один раз с помощью JSR223 PostProcessor
- Добавьте JSR223 PostProcessor как дочерний элемент запроса, который возвращает вышеуказанный JSON
Поместите следующий код в область "Сценарий":
vars.put('key', new groovy.json.JsonSlurper().parse(prev.getResponseData()).result) log.info(vars.get('key'))
Наслаждайтесь напечатанной переменной в окне Log Viewer
Конечно, вы сможете получить к нему доступ как
${key}
в других тестовых элементах
Рекомендации:
В дальнейшем, пожалуйста, избегайте использования функций и / или переменных JMeter в скриптах Groovy, поскольку они конфликтуют с шаблонами Groovy GString, могут быть преобразованы во что-то, что приводит к сбою компиляции или времени выполнения и несовместимо с кэшированием скомпилированных скриптов Groovy, что отрицательно влияет на производительность JMeter.