3

我有一个 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());
4

1 回答 1

0

将包含“com.qa.base.services.user.User”的 jar 及其所有依赖项放在 jmeter/lib 文件夹中,它应该可以工作。

于 2013-09-20T21:02:19.370 回答