【问题标题】:JMeter with jp@gc Firefox WebDriver: Different browser size in remote execution带有 jp@gc Firefox WebDriver 的 JMeter:远程执行中不同的浏览器大小
【发布时间】:2016-03-11 09:48:50
【问题描述】:

我正在使用带有jp@gc WebDriver 集(v1.3.1)和 Firefox 驱动程序(Firefox 版本:31.0)的 JMeter。 当我直接从 JMeter 执行它时,我的测试计划运行得很好。 我可以看到浏览器打开并且可以跟踪测试执行。

当我通过 JMeter-Server 运行它时,尽管通过远程执行,测试在一个采样器中重复失败,并显示以下错误消息:

错误 - com.googlecode.jmeter.plugins.webdriver.sampler.WebDriverSampler:等待元素可点击 300 秒后超时:By.id:向导

我已将采样器配置为在出错时截取屏幕截图,但这看起来不错。在实际尝试单击之前,采样器确实会等待元素可单击。

奇怪的是 - 如上所述 - 当我直接执行测试(即从 JMeter GUI)时,这不会发生

我注意到远程执行的一个区别是,浏览器实际上并没有在目标机器上打开(如“可见”)。我可以看到该进程正在使用“-foreground”选项运行。 这可能很好,但出于调试目的,我想看看实际发生了什么。这有助于确定这种情况下的不同之处。

关于在这种情况下如何让浏览器打开的任何想法? 或者,关于本地和远程执行有何不同的任何想法?

编辑:我认为我将此归结为直接执行与远程执行的浏览器大小不同。这在我从 Firefox 驱动程序切换到 Chrome 驱动程序后变得明显。远程执行测试仍然失败,但屏幕截图显示水平和垂直滚动条。 Firefox 没有,但屏幕截图显然没有显示“全部真相”。

【问题讨论】:

    标签: selenium firefox jmeter jmeter-plugins selenium-firefoxdriver


    【解决方案1】:

    比较直接和远程执行时,确实是由不同的浏览器大小引起的。我想在测试中单击的元素在远程执行时根本不在屏幕上,因此无法单击。然而,它可以被找到并且也符合“elementToBeClickable”条件,这有点违反直觉。

    为了避免这种情况,我在测试开始时专门设置了一个“安全”且固定的浏览器大小:

    WDS.browser.manage().window().setPosition(new pkg.Point(0, 0))
    WDS.browser.manage().window().setSize(new pkg.Dimension(1280, 1024))
    

    通过这种直接和远程执行具有相同的大小,并且测试按预期运行。 请注意

    WDS.browser.manage().window().maximize()
    

    在远程执行中不起作用! 这似乎以某种方式减小了屏幕尺寸,即使它以前设置为“安全”尺寸。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多