我试图通过捕获和修改以前采样器的响应来创建一个新的请求有效负载。我使用JSR 223后处理器编写代码来创建有效负载。但最近,它无法创建脚本并抛出以下错误:
ERROR o.a.j.e.JSR223PostProcessor: Problem in JSR223 script, JSR223 PostProcessor
javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
Script15.groovy: 23: unable to resolve class JsonObject
@ line 23, column 12.
JsonObject response = JsonObject.readFrom(jsonString);
字符串
以下是我的剧本:
import org.apache.jmeter.samplers.*;
import com.eclipsesource.json.*;
import org.apache.jmeter.config.Argument;
import org.apache.jmeter.config.Arguments;
import java.math.BigInteger;
String jsonString = prev.getResponseDataAsString();
JsonObject response = JsonObject.readFrom(jsonString);
response.remove('reference');
response.remove('dateCreated');
response.remove('lastUpdated');
response.set("status","INACTIVE");
vars.putObject("newPayload",response.toString());
型
以下是我试图创建新的“响应”,没有运气:
JSONObject response = new JSONObject.(jsonString);
型
提前感谢您的帮助!
1条答案
按热度按时间bvjveswy1#
我的期望是,您需要将提供此类的库(可能是minimal-json)添加到JMeter类路径中。
然而,你甚至不需要任何第三方库,Groovy支持JSON语言,请参阅Parsing and producing JSON文档章节以获得有关在Groovy中处理JSON的更多信息,并参阅Apache Groovy: What Is Groovy Used For?文章以了解在JMeter中使用Groovy的一般信息。