在类中找不到JMETER Beanshell(java.lang.String)

在类中找不到JMETER Beanshell(java.lang.String),java,selenium,jmeter,beanshell,Java,Selenium,Jmeter,Beanshell,我正在开发一个Jmeter beanshell脚本来使用Selenium。我决定使用beanshell采样器,这样我就可以使用在WDS接口中无法访问的java和selenium命令 除了一些字符串输入,我的代码工作正常。这是一个样本(被撕成光秃秃的骨头): 我得到了这个错误 2017/03/31 13:43:21 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: in

我正在开发一个Jmeter beanshell脚本来使用Selenium。我决定使用beanshell采样器,这样我就可以使用在WDS接口中无法访问的java和selenium命令

除了一些字符串输入,我的代码工作正常。这是一个样本(被撕成光秃秃的骨头):

我得到了这个错误

2017/03/31 13:43:21 ERROR - jmeter.util.BeanShellInterpreter: Error invoking bsh method: eval   Sourced file: inline evaluation of: ``import org.openqa.selenium.chrome.ChromeOptions; debug();  ChromeOptions options . . . '' : Error in method invocation: Method addArguments( java.lang.String ) not found in class'org.openqa.selenium.chrome.ChromeOptions'  2017/03/31 13:43:21 WARN  - jmeter.protocol.java.sampler.BeanShellSampler: org.apache.jorphan.util.JMeterException: Error invoking bsh method: eval Sourced file: inline evaluation of: ``import org.openqa.selenium.chrome.ChromeOptions; debug();  ChromeOptions options . . . '' : Error in method invocation: Method addArguments( java.lang.String ) not found in class'org.openqa.selenium.chrome.ChromeOptions'  201
我在其他一些命令(如sendkeys)中看到类似的情况

为什么这个命令不接受我的字符串?我可以运行完整的脚本,浏览器会打开文件,这样我就知道selenium是用jmeter安装的。只是某些使用字符串的命令可以做到这一点

谢谢
J

根据您的Selenium客户端库版本,您可能没有将单个字符串作为参数的方法。使用以下行创建一个新窗口:

log.info(javap(org.openqa.selenium.chrome.ChromeOptions));
查看JMeter控制台:您将看到打印出该类的所有可用方法,例如,对于我的安装(我有WebDriver Sampler插件),它输出以下内容:

类org.openqa.selenium.chrome.ChromeOptions扩展类java.lang.Object

公共布尔org.openqa.selenium.chrome.ChromeOptions.equals(java.lang.Object)

public int org.openqa.selenium.chrome.ChromeOptions.hashCode()

public void org.openqa.selenium.chrome.ChromeOptions.addArguments(java.lang.String[])

public void org.openqa.selenium.chrome.ChromeOptions.addArguments(java.util.List)

如果您使用与我相同的Selenium libraries版本(2.52.0),则应更改此行:

options.addArguments("start-maximized");
对于这一点:

options.addArguments(new String[] {"start-maximized"});
您的脚本应该按预期开始工作


有关JMeter测试中Beanshell脚本的更多信息,请参阅文章。

根据您的Selenium客户端库版本,您可能没有将单个字符串作为参数的方法。使用以下行创建一个新窗口:

log.info(javap(org.openqa.selenium.chrome.ChromeOptions));
查看JMeter控制台:您将看到打印出该类的所有可用方法,例如,对于我的安装(我有WebDriver Sampler插件),它输出以下内容:

类org.openqa.selenium.chrome.ChromeOptions扩展类java.lang.Object

公共布尔org.openqa.selenium.chrome.ChromeOptions.equals(java.lang.Object)

public int org.openqa.selenium.chrome.ChromeOptions.hashCode()

public void org.openqa.selenium.chrome.ChromeOptions.addArguments(java.lang.String[])

public void org.openqa.selenium.chrome.ChromeOptions.addArguments(java.util.List)

如果您使用与我相同的Selenium libraries版本(2.52.0),则应更改此行:

options.addArguments("start-maximized");
对于这一点:

options.addArguments(new String[] {"start-maximized"});
您的脚本应该按预期开始工作


有关JMeter测试中Beanshell脚本的更多信息,请参阅文章。

您是如何将Selenium类添加到JMeter类路径的?除非您正确映射Selenium JAR,否则它将无法工作。我建议您使用web驱动程序采样器。Beanshell无法获得更好的性能。您是如何将Selenium类添加到JMeter类路径的?除非您正确映射Selenium jar,否则它将无法工作。我建议您使用web驱动程序采样器。比恩希尔不容易取得更好的成绩。