JMeter:调用外部类和方法?

时间:2013-09-19 17:40:03

标签: java jmeter beanshell

我有一个Java测试项目,我想在我的JMeter测试中导入,以便我可以调用测试项目中的现有方法。我做了一些研究,并且知道我可以创建一个Java项目的jar,将jar复制到JMETER_HOME / lib / ext文件夹中,然后使用BeanShell Processor来调用外部方法。

我正在尝试使用现有的测试项目,并调用其方法来生成JSON有效负载。 我添加了一个BeanShell PreProcessor,并做了类似的事情:

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());

1 个答案:

答案 0 :(得分:0)

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