【发布时间】:2020-06-23 17:53:09
【问题描述】:
我需要将 json 字符串作为值传递给 POST 请求正文的一个参数。我的请求正文如下所示:
"参数1":"abc",
“参数2”:“定义”,
"参数3": "{\"id\":\"\",\"key1\":\"test123\",\"prod1\":{\"id\":\"\",\"key3 \":\"test123\",\"key4\":\"12334\",\"key5\":\"3\",\"key6\":\"234334\"},\"prod2\ ":{\"id\":\"\",\"key7\":\"test234\",\"key8\":1,\"key9\":true}}\"",
“参数4”:假,
“参数5”:“ghi”
}
对于参数 3,我需要以 json 格式传递一个字符串值。 json 文件位于我的本地系统中,并且是一个巨大的文件,因此如果我可以将它作为 jmeter 变量传递,那将是有意义的。我尝试如下:
{
"parameter1":"abc",
"parameter2":"def",
"parameter3": "${jsonObj}",
"parameter4":false,
"parameter5":"ghi"
}
使用以下代码添加 JSR223 预处理器后:
import org.apache.jmeter.util.JMeterUtils;
String fileContents = new File("path to json//myJson.json").getText('UTF-8');
vars.put("fileContents",fileContents);
var deltaJson = vars.get("fileContents");
var jsonObj = JSON.parse(deltaJson);
vars.put("jsonObj", JSON.stringify(jsonObj));
但我得到以下错误:
exceptions":{"exceptionType":"System.JSONException","exceptionMessage":"Unexpected character ('$' (code 36)): expected a valid value (number, String, array, object, 'true', 'false' or 'null') at input location [1,2]"}
谁能帮我解决这个问题?
【问题讨论】: