JMeter找不到BSF采样器的方法

时间:2016-01-04 13:01:20

标签: javascript exception jmeter

我在这个javascript中使用BSF Sampler

var tokenPass = '1234';
var serialNo = '1234578740905549583';
var str = 'hello';
var hashedpassword = Packages.ml.bn.security.CUpload.signDocument(tokenPass, serialNo, str, false);
vars.put('HASHEDPASSWORD',hashedpassword);

我将jar文件复制到JMeter的lib文件夹(类路径)中。 jar文件在CUpload.java包中有一个名为ml.bn.security的类。该类有一个名为signDocument的方法,其签名为:

public SignInfo signDocument(String pin, String serialNumber, String document, boolean isCheked) throws Throwable {
...
}

当我运行Jmeter时,我收到错误:

  

回复代码:500

     

响应消息:org.apache.bsf.BSFException:   JavaScript错误:Java类   " ml.bn.security.CUpload"没有公开实例   名为" signDocument"

的字段或方法

在该类文件中找不到该方法的问题是什么?

1 个答案:

答案 0 :(得分:1)

您的对象具有实例方法而非静态方法,因此您以错误的方式使用它。

要使用它,您需要构建Object然后调用方法:

var signer = new ml.bn.security.CUpload();
var hashedpassword = signer.signDocument(tokenPass, serialNo, str, false);
vars.put('HASHEDPASSWORD',hashedpassword);

我建议您使用JSR223 + Groovy而不是BSF。