javascript - 使用 BeanShell 预处理器发送 JSON 对象时出现问题

标签 javascript json performance jmeter jmeter-plugins

我想使用 BeanShell 预处理器将一个 JSON 对象发送到 JMeter 中的 HTTP 请求主体。为了对 JSON 对象建模,我使用了 Java 代码(带有一些业务逻辑)。因此,我创建了一个 BeanShell PreProcessor 并编写了如下 java 代码,

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

    String key="testKey";
    int lastID=5548;
    int totalCount=198;
    JSONObject obj1 = new JSONObject();
    JSONArray obj2 = new JSONArray();
    for (int i=1;i<=totalCount;i++)
    {
        JSONObject item = new JSONObject();
        item.put("taskId", Integer.toString(lastID+i));
        item.put("taskOrder",1);
        item.put("snapshotTemplateKey",key);
        obj2.put(item);
        obj1.put("changeControlTasks", obj2);
        obj1.put("ccName","Eleven" );
        obj1.put("snapshotTemplateKey",key);
    }
    log.info(obj1);
    vars.putObject("jsonData",obj1);

在 HTTP 请求正文中,我尝试按如下方式获取数据,

${jsonData}

使用上面的代码,抛出下面的共享错误

要求:

POST data:
${jsonData}

日志中的错误:

2017/08/06 07:27:10 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval
Sourced file: inline evaluation of: ``import org.json.JSONArray; import org.json.JSONException; 
import org.json.JSONOb . . . '' : Error in method invocation: Method info(  ) not found in class'org.apache.log.Logger'

任何人都可以建议上面的代码有什么问题以及如何解决这些问题。

任何建议或解决方案也将不胜感激。

最佳答案

obj2 保存数据。使用 obj2 而不是 obj1:

 vars.putObject("jsonData",obj2);

对于日志转换为Sring

 log.info(obj1.toString());

关于javascript - 使用 BeanShell 预处理器发送 JSON 对象时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45525005/

相关文章:

c# - 如何反序列化 JSon 复杂类型 C#

c# - 使用嵌入字符串中的大括号反序列化 JSON

python - 使用 numpy 进行网格分布

performance - 在 Google Apps Script 中获取边框的最有效方法是什么

javascript - 找到与另一个变量的值相等的变量

javascript - 如何根据修改后的类和名称属性切换动态创建的 div ?

php - 在一台机器上的 Firefox 上重复出现 "Unresponsive Script Warning"

asp.net - SharePoint - 使用 ASP 获取登录用户,使用 javascript 进行操作?

javascript - axios GET 请求有效,但无法将结果内容分配给变量

java - 在 Java 中,哪一段代码更快?