我在jar文件中有很少的方法 - 从eclipse创建 - 我想从我的JMeter Webdriver采样器调用这些方法。这就是我所做的。
我的java课程:
package com.automation.methods;
import org.openqa.selenium.*;
public class testClass{
public static void openWebApp(WebDriver driver,String url) {
driver.get(url);
}
}

我已经从eclipse创建了一个jar并将其复制到JMeter_HOME / lib。
我从JMeter-webdriver采样器尝试调用此方法如下:
var testObj= JavaImporter(com.automation.methods.testClass);
WDS.sampleResult.sampleStart();
testObj.openWebApp(WDS.browser,'http://google.com.au');
WDS.sampleResult.sampleEnd();

但这会引发错误: sun.org.mozilla.javascript.internal.EcmaError:TypeError:在对象[object JavaImporter]中找不到函数openWebApp。 (#4)在第4行
不确定我在这里想念的是什么。我尝试将jar文件复制到JMeter_HOME / lib / ext,但结果没有区别。有人知道如何解决这个问题吗?
感谢您的帮助,
manib。
答案 0 :(得分:0)
在您的情况下,openWebApp
方法是静态的。可以从类对象本身访问静态字段和方法。因此,如果您想从WDS Sampler调用该方法,则需要稍微改变一下。更新您的代码如下:
var testObj= new com.automation.methods.testClass;
WDS.sampleResult.sampleStart();
testObj.openWebApp(WDS.browser,'http://google.com.au');
WDS.sampleResult.sampleEnd();
它应该可以解决您的问题。
答案 1 :(得分:0)
取决于如何在JMeter中运行代码? BeanShell的; JSR223;等
您的jar必须放在{JMETER_HOME} / lib
中在beanshell中,您可以非常轻松地导入静态..
import com.automation.methods.testClass
然后,您可以从静态类中调用该方法..
testClass.openWebApp(...);
答案 2 :(得分:0)
谢谢大家的回复。我根据您的意见进行了工作并得到了解决方案:
importPackage(com.automation.methods);
var classObj=new testClass();
WDS.sampleResult.sampleStart();
classObj.openWebApp(WDS.browser,'http://google.com.au');
WDS.sampleResult.sampleEnd();

早些时候我试过这个,但由于我的包有些问题而无法正常工作。所以我创建了一个全新的软件包,解决了我的问题!