我有一个 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 后处理器可以正常工作。我为此使用了 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());
将包含“com.qa.base.services.user.User”及其所有依赖项的 jar 放在 jmeter/lib 文件夹中,它应该可以工作。