WebDriver在Jmeter Selenium中返回错误500

m3eecexj  于 6个月前  发布在  其他
关注(0)|答案(2)|浏览(87)

我是Jmeter/Selenium的新手,现在我正在使用Java 17.0.8和Jmeter 5.6.2,以及Selenium 4.13.0.0。我尝试了使用Java语言的示例代码如下:

import org.openqa.selenium.*
import org.openqa.selenium.support.ui.*

WDS.sampleResult.sampleStart();
WDS.browser.get("google.com");
WDS.sampleResult.sampleEnd();

字符串
然后我会得到一个500错误代码,下面的日志:

2023-12-25 11:53:16,662 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2023-12-25 11:53:16,662 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2023-12-25 11:53:16,662 INFO o.a.j.g.u.JMeterMenuBar: setRunning(true, *local*)
2023-12-25 11:53:16,692 INFO o.a.j.e.StandardJMeterEngine: Starting ThreadGroup: 1 : Thread Group
2023-12-25 11:53:16,692 INFO o.a.j.e.StandardJMeterEngine: Starting 1 threads for group Thread Group.
2023-12-25 11:53:16,692 INFO o.a.j.e.StandardJMeterEngine: Thread will continue on error
2023-12-25 11:53:16,692 INFO o.a.j.t.ThreadGroup: Starting thread group... number=1 threads=1 ramp-up=1 delayedStart=false
2023-12-25 11:53:16,693 INFO o.a.j.t.ThreadGroup: Started thread group number 1
2023-12-25 11:53:16,693 INFO o.a.j.e.StandardJMeterEngine: All thread groups have been started
2023-12-25 11:53:16,693 INFO o.a.j.t.JMeterThread: Thread started: Thread Group 1-1
2023-12-25 11:53:16,697 WARN c.g.j.p.w.c.WebDriverConfig: Old browser object is inaccessible, will create new
org.openqa.selenium.NoSuchWindowException: no such window: target window already closed
from unknown error: web view not found
  (Session info: chrome=120.0.6099.130)
Build info: version: '4.13.0', revision: 'ba948ece5b*'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.8'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [40e3d0d2a79e037d9bf1204692b3f91e, getCurrentUrl {}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 120.0.6099.130, chrome: {chromedriverVersion: 120.0.6099.109 (3419140ab66..., userDataDir: C:\Users\TriNP\AppData\Loca...}, fedcm:accounts: true, goog:chromeOptions: {debuggerAddress: localhost:37159}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: windows, proxy: Proxy(system), se:cdp: ws://localhost:37159/devtoo..., se:cdpVersion: 120.0.6099.130, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:extension:minPinLength: true, webauthn:extension:prf: true, webauthn:virtualAuthenticators: true}
Session ID: 40e3d0d2a79e037d9bf1204692b3f91e
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
    at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77) ~[?:?]
    at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
    at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) ~[?:?]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:480) ~[?:?]
    at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200) ~[selenium-remote-driver-4.13.0.jar:?]
    at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133) ~[selenium-remote-driver-4.13.0.jar:?]
    at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:52) ~[selenium-remote-driver-4.13.0.jar:?]
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:191) ~[selenium-remote-driver-4.13.0.jar:?]
    at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:196) ~[selenium-remote-driver-4.13.0.jar:?]
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:171) ~[selenium-remote-driver-4.13.0.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:602) ~[selenium-remote-driver-4.13.0.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:675) ~[selenium-remote-driver-4.13.0.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:679) ~[selenium-remote-driver-4.13.0.jar:?]
    at org.openqa.selenium.remote.RemoteWebDriver.getCurrentUrl(RemoteWebDriver.java:316) ~[selenium-remote-driver-4.13.0.jar:?]
    at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.hasThreadBrowser(WebDriverConfig.java:169) [jmeter-plugins-webdriver-4.13.0.0.jar:?]
    at com.googlecode.jmeter.plugins.webdriver.config.WebDriverConfig.threadStarted(WebDriverConfig.java:145) [jmeter-plugins-webdriver-4.13.0.0.jar:?]
    at org.apache.jmeter.threads.JMeterThread$ThreadListenerTraverser.addNode(JMeterThread.java:802) [ApacheJMeter_core.jar:5.6.2]
    at org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:1029) [jorphan.jar:5.6.2]
    at org.apache.jorphan.collections.HashTree.traverse(HashTree.java:1012) [jorphan.jar:5.6.2]
    at org.apache.jmeter.threads.JMeterThread.threadStarted(JMeterThread.java:770) [ApacheJMeter_core.jar:5.6.2]
    at org.apache.jmeter.threads.JMeterThread.initRun(JMeterThread.java:758) [ApacheJMeter_core.jar:5.6.2]
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:264) [ApacheJMeter_core.jar:5.6.2]
    at java.lang.Thread.run(Thread.java:833) [?:?]
2023-12-25 11:53:17,367 ERROR c.g.j.p.w.s.WebDriverSampler: In file: inline evaluation of: ``import org.openqa.selenium.* import org.openqa.selenium.support.ui.*  WDS.sample . . . '' Encountered "import" at line 2, column 1.
 in inline evaluation of: ``import org.openqa.selenium.* import org.openqa.selenium.support.ui.*  WDS.sample . . . '' at line number 2
2023-12-25 11:53:17,367 INFO o.a.j.t.JMeterThread: Thread is done: Thread Group 1-1
2023-12-25 11:53:17,367 INFO o.a.j.t.JMeterThread: Thread finished: Thread Group 1-1
2023-12-25 11:53:17,368 INFO o.a.j.e.StandardJMeterEngine: Notifying test listeners of end of test
2023-12-25 11:53:17,368 INFO o.a.j.g.u.JMeterMenuBar: setRunning(false, *local*)


唯一的区别是,我的GoogleChrome浏览器是在120.0.6099.130和我的驱动程序是在120.0.6099.109,有什么办法,我可以绕过这一点?我确实试图把remote-allow-origins=*,但它不会工作

zy1mlcev

zy1mlcev1#

当你选择java时,它不是真实的Java,它是Beanshell解释器,你从某处复制和粘贴的代码不是有效的Beanshell代码。

  • 例如,Beanshell中的每一条语句都需要以codeon结尾。
  • 事实上,你根本不需要导入,因为你没有使用任何你导入的类
  • 并且您需要在主机名之前添加相关的协议,否则您的“测试”将在该行失败

建议的修改:

WDS.sampleResult.sampleStart();
WDS.browser.get("https://google.com");
WDS.sampleResult.sampleEnd();

字符串
未来考虑迁移到groovy,它更兼容Java,具有更好的性能,并在标准Java SDK之上提供some syntax sugar。有关更多详细信息,请参阅Apache Groovy: What Is Groovy Used For?文章。

vhipe2zx

vhipe2zx2#

使用这些过时的进口产品的Tuesday:

import org.openqa.selenium.*
import org.openqa.selenium.support.ui.*

字符串
改为:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;


那就行了!

相关问题