Как правильно извлечь ключ .pem из ответа на запрос с помощью экстрактора JSON - PullRequest
0 голосов
/ 19 сентября 2018

Я использую 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 ]

0 голосов
/ 19 сентября 2018

Поскольку вы уже используете тестовые элементы JSR223, вам не нужен JSON Extractor, ключ PEM можно извлечь и распечатать за один снимок с помощью JSR223 PostProcessor

  1. Добавить JSR223PostProcessor как дочерний элемент запроса, который возвращает вышеуказанный JSON
  2. Поместите следующий код в область «Сценарий»:

    vars.put('key', new groovy.json.JsonSlurper().parse(prev.getResponseData()).result)
    log.info(vars.get('key'))
    
  3. Наслаждайтесь напечатанной переменнойв окне просмотра журнала

    JMeter Print Variable into log

  4. Конечно, вы сможете получить к нему доступ как ${key} в других тестовых элементах

Список литературы:


В дальнейшем избегайте использования функций и / или переменных JMeter в скриптах Groovy, поскольку они конфликтуют с Groovy Шаблоны GString , могут быть разрешены вчто-то, что вызывает компиляцию или сбой во время выполнения и несовместимо с Groovy cachИспользование скомпилированных скриптов отрицательно влияет на производительность JMeter.

0 голосов
/ 19 сентября 2018

Никогда не следует использовать $ {} в скрипте Groovy в JMeter.

Вместо этого сделайте это:

log.info ("Got key: {}", vars ["ключ "]);

При условии, что ваша переменная называется ключом

И вы так настроите JSON Extractor :

JSON Extractor

...