在一个JMeter测试计划中,我需要做以下事情......Generate TID
将一个或多或少的随机数放入vars.tid
。Calculate checksum
预处理器计算一个校验和,并将其放入vars.checksum
中。但是,该校验和取决于tid
和Send request
中的JSON有效负载的其他数据(var1
和var2
)。
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
不会被替换。
你有什么办法解决这个问题吗?
1条答案
按热度按时间mftmpeh81#
如果您需要解析“占位符”并将其替换为相关变量值,则需要将__eval()函数与__FileToString()函数结合使用,并将结果传递给JsonSlurper:
有关JMeter函数概念的更多信息:Apache JMeter Functions - An Introduction