jmeter JSR223Assert:将自定义键传递给JsonOutput.toJson()

3vpjnl9f  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(123)

我正在使用以下代码进行验证:

import groovy.json.JsonOutput
import groovy.json.JsonSlurper

String sourceTargetPassJson = "{\"Apple\":[\"Apple\",\"Orange\",\"Kiwi\",\"Avocado\"],\"Orange\":[\"Orange\",\"Kiwi\",\"Avocado\"]}";

def sourceVar = vars.get("source_type");
def targetVar = vars.get("target_type");

log.info("Source :" + sourceVar + ", Target :" + targetVar + ".");

def jsonSlurper = new JsonSlurper();
def response = jsonSlurper.parseText(sourceTargetPassJson);

def json = JsonOutput.toJson(response.sourceVar);

log.info("Response: " + json);

vars.put("json", json);

这里,def json = JsonOutput.toJson(response.sourceVar);失败,因为没有名为sourceVar的密钥,该密钥是基于Jmeter变量source_type获得的。假定上述Assert在循环控制器中,我希望基于每次迭代获得的source_type进行验证。
示例:
反覆项目1、sourceVar = "Apple"json应该有["Apple","Orange","Kiwi","Avocado"]。反覆项目2、sourceVar = "Orange"json应该有["Orange","Kiwi","Avocado"]
如何根据sourceVar的自定义值获取变量json的值?

elcex8rz

elcex8rz1#

通过以下更改简单地解决了该问题:

String json = response[sourceVar];

因此,如果sourceVar"Apple",则获得的json的值为[Apple,Orange,Kiwi,Avocado]

相关问题