Wie führe ich mit Selenium WebDriver einen durchführbaren Web-Rauchtest durch?
Ich habe einige Untersuchungen zum möglichen und schnelleren Laden von Webseiten mit @ durchgeführSelenium
. Beim Testen von Rauch besteht eine allgemeine Idee darin, durch Klicken und Navigieren auf der gesamten Website sicherzustellen, dass die Seiten ordnungsgemäß geladen werden. Ich dachte anfangs darüber nach, auf irgendeine Art und Weise das @ zu erfassehttp
Statuscode durch irgendeine Art vonhttp
Bibliotheken seitSelenium
hat dafür keine native Unterstützung. Aber ich habe festgestellt, dass es nicht das ist, was ich will, da es einfach jeden Link der Site zurückgibt und die meisten von ihnen sind diejenigen, die ich nicht will. Der beste Weg ist also, einen tatsächlichen Klick auszuführen und Seiten als Gegenleistung zu nehmen. Das Problem dort ist die Ausführungszeit, die es dauern wird. Das ist jedoch das, was ich gerade tue. Teilen Sie die gesamte Anwendung in verschiedene Module auf, klicken Sie sich durch alle VISIBLE-Links und nehmen Sie die Seitenobjekte mit einem bekannten Selektor zurück. Ich benutzeFindElements()
-Methode, um alle Links einer Seite zu erfassen, und klicken Sie vor und zurück, um das Laden der Seite zu testen. Ich mache so etwas wie das Folgende:
Gibt es einen besseren Weg, um die Leistung zu verbessern?
WebElement deliveredChartDailyFocus = driver.findElement(By.id("delivered-chart-daily"));
deliveredChartDailyFocus.click();
// Get a list of all the <rect> elements under the #delivered-chart-daily element
List<WebElement> children = deliveredChartDailyFocus.findElements(By.tagName("rect"));
WebElement elementToClick = null; // variable for the element we want to click on
for (WebElement we : children) // loop through all our <rect> elements
{
if (we.isDisplayed())
{
elementToClick = we; // save the <rect> element to our variable
break; // stop iterating
}
}
if (elementToClick != null) // check we have a visible <rect> element
{
elementToClick.click();
}
else
{
// Handle case if no displayed rect elements were found
}