如何在Jmeter中创建动态JSON对象?

如何在Jmeter中创建动态JSON对象?,jmeter,beanshell,Jmeter,Beanshell,我的要求是动态创建动态JSON对象,这是我之前编写的Java代码,它在Eclipse中运行良好,但当我在Beanshell sampler中添加相同的代码时,它抛出了一个错误。在比恩希尔我需要做什么不同的事情?欢迎任何建议,谢谢 JSONObject[] innerObject = new JSONObject[3]; innerObject[0].put("fullName", "Jason Hopes"); innerObject[1].put(

我的要求是动态创建动态JSON对象,这是我之前编写的Java代码,它在Eclipse中运行良好,但当我在Beanshell sampler中添加相同的代码时,它抛出了一个错误。在比恩希尔我需要做什么不同的事情?欢迎任何建议,谢谢

 JSONObject[] innerObject = new JSONObject[3];
 innerObject[0].put("fullName", "Jason Hopes");
 innerObject[1].put("firstName", "Jason");
 innerObject[2].put("lastName", "Hopes");
 
错误是

 2020-11-14 20:51:11,963 INFO o.a.j.u.BeanShellTestElement: Exception isjava.lang.NullPointerException: Attempt to invoke method put on null value

您需要将提供这些
org.json.JSONObject
org.json.JSONArray
的库及其依赖项(如果有的话)添加到JMeter类路径,并重新启动JMeter以获取.jar。大概是

还要注意,对于脚本,您不需要任何额外的库

相关代码类似于:

def payload = []
payload.add([fullName:'Jason Hopes'])
payload.add([firstName: 'Jason'])
payload.add([lastName: 'Hopes'])

log.info(new groovy.json.JsonBuilder(payload).toPrettyString())


更多信息:

谢谢Dmitry的回复,但我在lib文件夹中已经有了所需的jar文件。正常的JSONObject和JSONArray工作正常,问题是当JSON对象用数组初始化时,即JSONObject[]。您提供的关于使用Groovy脚本的另一个解决方案,我正在尝试在JSONObject中添加JSONArray,我们可以使用Groovy吗?我已经有了用Eclipse编写的Java代码,它工作得很好,我只需要在Jmeter中重用相同的代码。你能推荐我应该使用哪种方法吗?问题中提到的JSON请求-这是我想要动态创建的。另外,我把我的代码放在Try-Catch下,这里是我得到的确切异常“2020-11-14 20:51:11963信息o.a.j.u.BeanShellTestElement:Exception isjava.lang.NullPointerException:尝试调用将方法置于空值上”我已经用这些信息更新了我的问题