我有一个 Java 测试项目,我想在我的 JMeter 测试中导入它,以便我可以调用测试项目中的现有方法。我做了一些研究,发现我可以为我的 Java 项目创建一个 jar,将 jar 复制到 JMETER_HOME/lib/ext 文件夹中,然后使用 BeanShell 处理器调用外部方法。
我正在尝试使用现有的测试项目,并调用其方法来生成 JSON 有效负载。我添加了一个 BeanShell 预处理器,并做了类似的事情:
import com.qa.base.services.user.User;
User user = User.generateSimpleUser();
user.setField("username", "testUsername");
user.setField("password", "testPassword");
vars.put("requestJsonPayload", user.toString());
这似乎不起作用,我得到一个错误:
错误 - jmeter.util.BeanShellInterpreter:错误调用 bsh 方法:eval 源文件:内联评估:“import com.qa.base.services.user.User”:类型变量声明:方法调用 User.generateSimpleUser()
有人知道我怎样才能实现我想要做的事情吗?任何建议、评论、教程链接、示例都会有所帮助。提前致谢!
更多信息:
我还使用了一个 BeanShell PostProcessor,它获取我的一个请求的响应负载,删除负载中的一些字段,并构造一个新的负载,我可以将其作为另一个请求的请求负载发送。BeanShell PostProcessor 可以正常工作。我为此使用了 JSONObject,我的代码如下所示:
import org.json.JSONObject;
String jsonString = prev.getResponseDataAsString();
print(jsonString);
JSONObject responseJSON = new JSONObject(jsonString);
responseJSON.remove("createTime");
responseJSON.remove("id");
vars.put("updatedJsonPayload",responseJSON.toString());