我需要编写一个自动化测试来计算屏幕响应的平均响应时间。我正在使用selenium和VB.net。请指导如何计算。 as waitforpage()只允许您指定等待的最长时间。我如何才能真正获得加载所需的时间。
亲切的问候 THX
答案 0 :(得分:1)
好吧,我会分享你使用的方法,但仅限于java。希望你能以某种方式采用它来ot vb.net。
public class CodeTimingMeasurement extends BaseSeleniumTest {
@Test
public void rmsHomeTiming() throws IOException, InterruptedException {
doLogout();
locatorFindingHandling("login.logininput", "login.admin.login");
locatorFindingHandling("login.passinput", "login.admin.pass");
long startTime = System.currentTimeMillis();
locatorFindingHandling("login.loginbutton");
loaderInficatorsDisappear("rms.loadingwindow");
fluentWait(By.cssSelector(propertyKeysLoader("rms.home.timeoffs.gearicon")));
fluentWait(By.cssSelector(propertyKeysLoader("rms.home.logout")));
fluentWait(By.cssSelector(propertyKeysLoader("home.timeoffs.own")));
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println("Totaltime: " + totalTime + " milliseconds");
}
}
这个想法如下: 你按登录按钮或任何其他元素causign页面加载。然后你开始计时器。然后选择一组应该在页面上显示的元素。并使用fluentWait机制,你等到它们出现。然后计时器应该停止。
流利的等待info 流利的等待方法代码:
public WebElement fluentWait(final By locator){
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
// .pollingEvery(5, TimeUnit.SECONDS)
.pollingEvery(1, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
WebElement foo = wait.until(
new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
return driver.findElement(locator);
}
}
);
return foo; } ;
希望你的心情很清楚)