我正在将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-----
我有没有做对的事情?
答案 0 :(得分:1)
永远不要在JMeter的Groovy脚本中使用$ {}。
相反,这样做:
log.info(“ Got key:{}”,vars [“ key”]);
提供的变量名为key
这就是配置JSON Extractor的方式:
答案 1 :(得分:0)
鉴于您已经使用了JSR223测试元素,而您不需要JSON提取器,则可以通过JSR223 PostProcessor
提取并打印PEM密钥。将以下代码放入“脚本”区域:
vars.put('key', new groovy.json.JsonSlurper().parse(prev.getResponseData()).result)
log.info(vars.get('key'))
在Log Viewer窗口中享受打印的变量
您当然可以在其他测试元素中以${key}
的身份访问它
参考文献:
继续,请避免在Groovy脚本中使用JMeter函数和/或变量,因为它们与Groovy GString Templates冲突,可能会解决导致编译或运行时失败并且与Groovy缓存已编译脚本功能不兼容的问题对JMeter的性能产生负面影响。