gpt4 book ai didi

c# - Node 上带有 HtmlUnit 的 WebDriver Grid 与 Node CPU Hook

转载 作者:行者123 更新时间:2023-11-30 18:40:08 25 4
gpt4 key购买 nike

我使用 C# 和 Gallio/mbUnit 编写一组非常简单的测试,打开浏览器,导航到 google.com,在搜索框中键入“seleniumhq”,然后单击搜索按钮。

我创建我的主机:

java -jar \"C:\\selenium-server-standalone-2.15.0.jar\" -role hub -port 4444

和我的节点:

java -jar \"C:\selenium-server-standalone-2.15.0.jar\" -role node -hub http://[hostIP]:4444/grid/register -port 5556 -browser browserName=htmlunit,platform=ANY,version=firefox,maxInstances=1

我创建我的 webDriver 实例,我使用:

driver = new RemoteWebDriver("http://localhost:4444/wd/hub", DesiredCapabilities.HtmlUnitWithJavaScript());

我正在监控我的节点机器,当测试开始时,CPU 固定到 99%,仅运行 1 个测试。我在等待搜索按钮显示时超时...它就在那里,只是不可见,即使在 40 秒后也是如此:

var wait = new WebDriverWait(WebDriver, new TimeSpan(0, 0, 0, 40)); 
wait.Until(m => m.FindElement(By.Name("btnG")).Displayed);

关于为什么该元素对于 HtmlUnit 始终不可见有什么想法吗?

关于远程节点上 HtmlUnit 的 CPU 占用率达到或接近 100% 并且内存峰值高达 800,000K 的任何想法?

我复制了相同的测试以创建 10 个相同的测试,如果我删除点击搜索按钮代码,HtmlUnit 测试需要 65 秒。此测试使用两个节点,每个节点的 DegreeOfParallelism 设置为 10,MaxInstances 设置为 5。当我使用 Chrome 使用相同的参数运行相同的测试时,它们会在 35 秒内运行,而且我没有看到 CPU 变得疯狂。有人对此有任何想法吗? HtmlUnit 应该比我读过的快 4 倍。我猜我有一些错误应该是相当明显的。

感谢所有帮助和建议。

最佳答案

有点晚了,但是:

要了解 HtmlUnitDriver 正在做什么,请使用 jstack <pid> 获取线程转储.您可能会看到它已死锁或陷入循环。

我在使用较旧的 HtmlUnit 版本时遇到了一些死锁和挂起问题,但最新的 Selenium server versions (2.31.0) 使用的 HtmlUnit 2.11 似乎已经解决了这些问题。

看起来您使用的是包含 HtmlUnit 2.9 的 Selenium 2.15,这可能是问题所在。

关于c# - Node 上带有 HtmlUnit 的 WebDriver Grid 与 Node CPU Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8706732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com