我正在开发一个Jmeter beanshell脚本来与Selenium一起使用。我决定使用beanshell采样器,因此我可以使用WDS界面中无法访问的java和selenium命令。
我的代码工作正常,除了一些String输入。这是一个样本(拆除为准系统):
import org.openqa.selenium.chrome.ChromeOptions;
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
我收到此错误
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设置的。只是某些命令使用字符串来执行此操作。
由于 Ĵ
答案 0 :(得分:0)
根据您的Selenium客户端库版本,您可能没有此方法将单个String作为参数。使用以下行创建一个新的Beanshell Sampler:
log.info(javap(org.openqa.selenium.chrome.ChromeOptions));
查看JMeter控制台:您将看到javap command打印出ChromeOptions类的所有可用方法,例如我的安装(我有WebDriver Sampler插件),它输出以下内容: / p>
类class org.openqa.selenium.chrome.ChromeOptions扩展类java.lang.Object
public boolean 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库版本(2.52.0),则应更改此行:
options.addArguments("start-maximized");
到这一个:
options.addArguments(new String[] {"start-maximized"});
您的脚本应该按预期开始工作。
有关JMeter测试中Beanshell脚本的更多信息,请参阅How to Use BeanShell: JMeter's Favorite Built-in Component文章。