scraping - selenium python
¿Cómo realizar una prueba de humo web viable con Selenium WebDriver? (1)
He estado investigando sobre una prueba de carga de página web más rápida y factible con Selenium
. Una idea general de las pruebas de humo es hacer clic y navegar por todo el sitio para asegurarse de que las páginas se carguen correctamente. Inicialmente estaba pensando en utilizar algún tipo de formas de capturar el código de estado http
través de algún tipo de bibliotecas http
, ya que Selenium
no tiene ningún soporte nativo para eso. Pero, descubrí que no es lo que quiero, ya que simplemente devolverá todos y cada uno de los enlaces del sitio y la mayoría de ellos serán los que no quiero. Entonces, la mejor manera será realizar un clic real y tomar páginas a cambio. El problema es el tiempo de ejecución que llevará. Sin embargo, eso es lo que estoy haciendo actualmente. Dividir toda la aplicación en diferentes módulos y hacer clic a través de todos los enlaces VISIBLES y tomar objetos de página a cambio con un selector conocido. Estoy usando el método FindElements()
para tomar todos los enlaces de una página y hacer clic adelante y atrás para probar la carga de la página. Estoy haciendo algo como lo siguiente:
¿Hay una mejor manera de mejorar el rendimiento?
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
}
Nunca llamaría al proceso de verificación de cada enlace ''prueba de humo''. Por ejemplo, cómo ISTQB define este "Un subconjunto de todos los casos de prueba definidos / planificados que cubren la funcionalidad principal de un componente o sistema, para determinar que funcionan las funciones más importantes de un programa, pero sin molestarse con detalles más finos". Y en realidad significa exponer algunos escenarios significativos y verificar un pequeño flujo / pieza de funcionalidad. Solo haciendo clic en cada enlace verificará la corrección de los enlaces, pero no los cálculos o la lógica realizada por el lado del servidor. En cuanto a la mejora de la velocidad de pasar las pruebas, puede considerar ejecutar pruebas en paralelo.