【发布时间】:2020-10-20 19:17:58
【问题描述】:
我想在 Apache Jmeter 中执行(我想稍后扩展)我的第一个基于 Java 的 Selenium 测试,但我在日志部分收到一条错误消息:
这是我的简单代码:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
System.setProperty("webdriver.gecko.driver","c:\\DEVTOOLS\\PERFORMANCE_TEST\\FIREFOX_GECKO_DRIVER\\geckodriver.exe")
WebDriver driver = new FirefoxDriver();
String url="https://www.google.com/")
driver.get(baseUrl);
driver.close();
这是错误:
2020-06-30 14:52:20,702 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2020-06-30 14:52:20,702 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2020-06-30 14:52:20,703 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, *local*)
2020-06-30 14:52:20,710 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2020-06-30 14:52:20,710 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2020-06-30 14:52:20,710 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error
2020-06-30 14:52:20,710 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 delayedStart=false
2020-06-30 14:52:20,710 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2020-06-30 14:52:20,710 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2020-06-30 14:52:20,711 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-1
2020-06-30 14:52:20,719 ERROR o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script JSR223 Sampler, message: javax.script.ScriptException: In file: inline evaluation of: ``import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.Firefox . . . '' Encountered "WebDriver" at line 5, column 1.
in inline evaluation of: ``import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.Firefox . . . '' at line number 5
javax.script.ScriptException: In file: inline evaluation of: ``import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.Firefox . . . '' Encountered "WebDriver" at line 5, column 1.
in inline evaluation of: ``import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.Firefox . . . '' at line number 5
at bsh.engine.BshScriptEngine.evalSource(BshScriptEngine.java:82) ~[bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at bsh.engine.BshScriptEngine.eval(BshScriptEngine.java:46) ~[bsh-2.0b6.jar:2.0b6 2016-02-05 05:16:19]
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) ~[?:1.8.0_202]
at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:224) ~[ApacheJMeter_core.jar:5.3]
at org.apache.jmeter.protocol.java.sampler.JSR223Sampler.sample(JSR223Sampler.java:72) [ApacheJMeter_java.jar:5.3]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:630) [ApacheJMeter_core.jar:5.3]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:558) [ApacheJMeter_core.jar:5.3]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:489) [ApacheJMeter_core.jar:5.3]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:256) [ApacheJMeter_core.jar:5.3]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_202]
2020-06-30 14:52:20,719 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-1
2020-06-30 14:52:20,719 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-1
2020-06-30 14:52:20,720 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2020-06-30 14:52:20,720 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)
我不知道为什么会发生,因为每个 jar 都被复制到: Apache Jmeter lib 文件夹和 lib/ext/ 文件夹。
如果可能,我想离开 WDS.Sampler。这就是我开始使用 SR223Sampler 的原因。
更新:
这是我所拥有的最终解决方案。它按我的预期工作。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxOptions;
System.setProperty("webdriver.gecko.driver","c:\\DEVTOOLS\\PERFORMANCE_TEST\\FIREFOX_GECKO_DRIVER\\geckodriver.exe");
FirefoxOptions options = new FirefoxOptions().setAcceptInsecureCerts(true);
WebDriver driver = new FirefoxDriver(options);
String expectedTitle = "Google";
String actualTitle = "";
String baseUrl = "https://google.com";
driver.get(baseUrl);
actualTitle = driver.getTitle();
if (actualTitle.contentEquals(expectedTitle)){
System.out.println("Test Passed!");
} else {
System.out.println("Test Failed");
}
Thread.sleep(5000);
driver.close();
【问题讨论】:
标签: java selenium selenium-webdriver jmeter selenium-firefoxdriver