JMeter Webdriver采样器中的等待时间问题
我使用JMeter Webdriver采样器测量应用程序UI响应时间。我面临等待函数的问题。例如,登录页面的加载时间为10到120秒。因此,我在Webdriver sampler中为登录页面编写了以下代码,用于页面加载检查JMeter Webdriver采样器中的等待时间问题,jmeter,webdriver,webdriverwait,Jmeter,Webdriver,Webdriverwait,我使用JMeter Webdriver采样器测量应用程序UI响应时间。我面临等待函数的问题。例如,登录页面的加载时间为10到120秒。因此,我在Webdriver sampler中为登录页面编写了以下代码,用于页面加载检查 var ui=JavaImporter(org.openqa.selenium.support.ui) var wait=new support_ui.WebDriverWait(WDS.browser,120) wait.until(ui.ExpectedConditio
var ui=JavaImporter(org.openqa.selenium.support.ui)
var wait=new support_ui.WebDriverWait(WDS.browser,120)
wait.until(ui.ExpectedConditions.visibilityOfElementLocated(pkg.By.className('logout-btn-hover')))
问题是,即使在页面完全加载之后,JMeter仍在等待执行下一个操作。如果我减少120秒,这个等待时间就会减少。但是有时候加载应用程序也需要120秒,所以我需要保持120秒
一旦采样器完成其操作,我就将时间写入日志文件。由于等待时间问题,我无法正确计算时间
var ui=JavaImporter(org.openqa.selenium.support.ui)
var wait=new ui.WebDriverWait(WDS.browser,120)
wait.until(ui.ExpectedConditions.visibilityOfElementLocated(org.openqa.selenium.By.className('logout-btn-hover')))
ERROR c.g.j.p.w.s.WebDriverSampler: Expected condition failed: waiting for visibility of element located by By.className: logout-btn-hover (tried for 120 second(s) with 500 milliseconds interval)
var ui=JavaImporter(org.openqa.selenium.support.ui)
var wait=new ui.WebDriverWait(WDS.browser,120)
wait.until(ui.ExpectedConditions.visibilityOfElementLocated(org.openqa.selenium.By.className('logout-btn-hover')))
ERROR c.g.j.p.w.s.WebDriverSampler: Expected condition failed: waiting for visibility of element located by By.className: logout-btn-hover (tried for 120 second(s) with 500 milliseconds interval)
var pkg = JavaImporter(org.openqa.selenium)
WDS.sampleResult.sampleStart()
WDS.browser.get('http://example.com')
var start = new Date().getTime()
var attempt = 1
while (new Date().getTime() - start < 5000) {
try {
var logout = WDS.browser.findElement(pkg.By.className('logout-btn-hover'))
WDS.log.info('Element found')
break
}
catch (err) {
WDS.log.info('Attempt # ' + attempt + ', Element not found')
java.lang.Thread.sleep(1000)
attempt++
}
}
WDS.sampleResult.sampleEnd()
var pkg=JavaImporter(org.openqa.selenium)
WDS.sampleResult.sampleStart()
WDS.browser.get('http://example.com')
var start=new Date().getTime()
var尝试=1
while(新日期().getTime()-start<5000){
试一试{
var logout=WDS.browser.findElement(pkg.By.className('logout-btn-hover'))
WDS.log.info('找到元素')
打破
}
捕捉(错误){
WDS.log.info('尝试#'+尝试+',未找到元素')
java.lang.Thread.sleep(1000)
企图++
}
}
WDS.sampleResult.sampleEnd()
- 未找到元素时的输出示例:
- 找到元素时的输出示例: