我在这个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"
的字段或方法
在该类文件中找不到该方法的问题是什么?
答案 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。