当前位置: 首页 > 知识库问答 >
问题:

Jmeter 网络驱动程序隐式等待实现

拓拔阎宝
2023-03-14

im在Jmeter(web驱动程序)上编写Java代码以执行负载测试,我需要实现隐式等待,类似于:

WDS.manage().timeouts().隐式等待(60, TimeUnit.SECONDS);

但似乎Jmeter并不理解它,我还试图用:

def wait=new org.openqa.selenium.support.ui.WebDriverWait(WDS.browser,5);等待,直到(org.openqa.selenium.support.ui.ExpectedConditions.ElementTobelickable(org.openqa.selenium.By.xpath(//a[contains(text(),'More information')))))

没有用。

唯一与我合作的是:

Thread.sleep(2000年);

但当我在高负载下运行测试时,它将无法工作。

测试计划和CSV文件可以在下面的URL中找到:https://drive . Google . com/file/d/1k 5 zjhsexifpobwysnykcwrz n 0 xxokahl/view?usp =共享

请看看代码,告诉我我能做什么:(

注意,脚本语言是JAVA,Jmeter上没有JavaScript选项。

共有1个答案

蒋飞捷
2023-03-14

JMeter的WebDriver Sampler中没有JAVA,它是Beanshell解释器,为了能够使用上面的代码片段显式等待,您需要将语言切换到groovy(此外,它是自JMeter 3.1以来推荐的脚本选项)

您不必更改单行甚至字符,在大多数情况下,有效的Java代码是有效的Groovy代码。

鉴于您切换到Groovy,实现您从某处复制和粘贴的显式等待的代码段将开始工作。

也不要混合隐式和显式等待:

警告:不要混合隐式和显式等待。这样做可能会导致不可预测的等待时间。例如,将隐式等待设置为 10 秒,将显式等待设置为 15 秒可能会导致在 20 秒后发生超时。

 类似资料:
  • 正在研究尝试理解显式等待的方法。 所以单选按钮被点击后,输入形式发生了变化,所以我把给它一个时间元素出现,否则会出错“元素不可见......”。所以我认为现在是理解显式等待的好时机,因为我需要等到元素出现。 但出现错误“Selenium::WebDriver::error::ElementNotVisibleError:Element当前不可见,因此可能无法与之交互”。为什么这段代码不等到元素出现

  • 下面是我为firefox浏览器初始化的selenium web驱动程序。 尽管我给出了隐式等待,但我没有等待元素。它会立即抛出not found异常。如果我放那么它工作正常,没有任何问题。但是把现在测试用例包含更多线程的任何地方。sleep比实际的测试用例代码低。有人能给我建议正确的方法吗?

  • 我在eclipse中使用SeleniumWebDriver和TestNG。问题是页面在某些数据的中途重新登录,并且重新加载的时间是灵活的,这就是为什么我不能应用显式等待时间。我想让webdriver等待,直到重新加载完成。 我正在尝试通过此代码执行此操作……但它不起作用。

  • 如何等待硒Web驱动程序中的子窗口 当我点击提交按钮,它会把我带到子窗口,我断言URL,但有时子窗口需要时间来目前使用thread.sleep(4000),但这是错误的方式。

  • 我试图使用SeleniumWebDriverWait类型,在检查元素是否存在之前,等待页面完全加载。我尝试了两种不同的方法。 第一个方法使用IgnoreExceptionTypes,然后在Until方法内调用FindElement。这会立即抛出NoTouchElementException,而无需等待。我希望这会继续尝试查找元素,直到超时,同时忽略NosTouchElementException。

  • 当我完成自动化后,Chrome Web驱动程序仍在后台运行,是否可以自动关闭它,而无需通过任务管理器执行?