版主,请在将其标记为副本之前通读一次。
这是我第一次在JMeter中创建自定义Sampler。我正在尝试一个简单的查询。
public class CustomJavaSampler extends AbstractJavaSamplerClient implements Serializable {
/**
*
*/
private static final long serialVersionUID = 5838315675279087366L;
@Override
public SampleResult runTest(JavaSamplerContext arg0) {
SampleResult result = new SampleResult();
result.sampleStart(); // start stopwatch
JMeterVariables vars = JMeterContextService.getContext().getVariables();
vars.putObject("search", "DoASearch");
JMeterContextService.getContext().setVariables(vars);
result.sampleEnd(); // stop stopwatch
result.setSuccessful(true);
result.setResponseMessage("Successfull");
result.setResponseCodeOK(); // 200 code
return result;
}
}
我创建了一个jar,我已经将它添加到jmeter中的lib / ext文件夹中。但我无法在Java Request sampler中看到该类。 我启用了调试日志。
log_level.jmeter=DEBUG
log_level.jmeter.junit=DEBUG
log_level.jmeter.control=DEBUG
log_level.jmeter.testbeans=DEBUG
log_level.jmeter.engine=DEBUG
log_level.jmeter.threads=DEBUG
log_level.jmeter.gui=WARN
log_level.jmeter.testelement=DEBUG
log_level.jmeter.util=DEBUG
log_level.jmeter.util.classfinder=DEBUG
log_level.jmeter.test=DEBUG
log_level.jmeter.protocol.http=DEBUG
# For CookieManager, AuthManager etc:
log_level.jmeter.protocol.http.control=DEBUG
log_level.jmeter.protocol.ftp=WARN
log_level.jmeter.protocol.jdbc=DEBUG
log_level.jmeter.protocol.java=WARN
log_level.jmeter.testelements.property=DEBUG
log_level.jorphan=DEBUG
log_file=jmeter-debug.log
完整的jmeter日志为http://pastebin.com/T39iUhFW
为什么日志显示/ lib jar的“找不到”消息?
答案 0 :(得分:0)
您的代码没有任何问题,CustomJavaSampler显示在Java Request类名中。
所以也许这与你的.jar文件有关。你能把它上传到某个地方,以便我们看看吗?我想这是samp.jar
。
顺便说一下,设置变量是一个非常“轻松”的操作,可以通过几乎与Java兼容的Beanshell Sampler来完成。
如果你需要执行一些加载 - 下一个选项是JSR223 Sampler and "groovy",这是简单性和生产率之间的“平衡”,所以如果你需要在代码中做一些更改,你就不必重新编译,替换罐子,重启JMeter等。