JMeter JSR223预处理程序无法解析带有占位符的JSON

c9qzyr3d  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(228)

在一个JMeter测试计划中,我需要做以下事情......
Generate TID将一个或多或少的随机数放入vars.tid
Calculate checksum预处理器计算一个校验和,并将其放入vars.checksum中。但是,该校验和取决于tidSend request中的JSON有效负载的其他数据(var1var2)。

JSON正文示例

{
  "event": {
    "checksum": "${checksum}",
    "tid": ${tid},
  },
  "data": {
    "var1": "value1",
    "var2": "value2
  }
}

一米八纳一米

import groovy.json.JsonSlurper

def jsonSlurper = new JsonSlurper()

def requestBodyString = sampler.getArguments().getArgument(0).getValue();
def json = jsonSlurper.parseText(requestBodyString)

def tid = vars.get('tid')
def checkusm = calculateChecksum(tid, json.var1, json.var2)

vars.put('checksum', checksum)

现在,由于"tid": ${tid}不是有效的JSON,JsonSluper似乎没有实际解析内容。因此,在发送请求之前,checksum不会被替换。
你有什么办法解决这个问题吗?

mftmpeh8

mftmpeh81#

如果您需要解析“占位符”并将其替换为相关变量值,则需要将__eval()函数与__FileToString()函数结合使用,并将结果传递给JsonSlurper:

有关JMeter函数概念的更多信息:Apache JMeter Functions - An Introduction

相关问题