Para mi pasantía, tengo que usar TestNG y selenio para probar una aplicación web. Pero tengo un problema, a veces el selenio o el navegador no funciona por algún motivo aleatorio, por lo que una prueba de trabajo se marca como "fallida". Para evitar eso, puedo usar la anotación @Test(invocationCount = 4, successPercentage = 25)
, y si la prueba se realiza una vez, la prueba está marcada como "Salir bien", eso es bueno, pero el problema es que esta solución multiplica el tiempo de prueba por 4, esto no es muy eficiente .Cómo optimizar las pruebas de detección y selenio
Lo que puedo hacer para disminuir el tiempo de prueba, es escribir una regla "si la prueba falló, vuelva a ejecutar esta prueba (y solo si la prueba falló) y si funcionó la segunda, tercera o cuarta vez, marque esta prueba como "tener éxito" "Para poder evitar estos errores al azar. Pero no he encontrado cómo escribir esta regla, vi que podemos agregar un oyente, por lo que tenemos un método llamado "onTestFailure
" para poder hacer algo cuando la prueba ha fallado pero no sé cómo volver a hacerlo. ejecuta la prueba.
También encontré testng-failed.xml donde se guardan todas las pruebas fallidas, por lo que podemos ejecutar este archivo xml para volver a ejecutar estas pruebas, pero esto borrará el informe de la primera ejecución anterior, pero quiero que el las pruebas fallidas se marcan como "exitosas" si la segunda ejecución es exitosa. (He integrado testNG/selenio a Jenkins, entonces tengo un gráfico con todas las pruebas, por lo que este método no es muy adecuado, pero este método no multiplica el tiempo de prueba por 4 y esto es lo que quiero)
Entonces, si tienes alguna pista de cómo hacerlo, sería muy agradable.
He probado para ejecutar el testng-failed.xml 3 veces, y luego todas las pruebas están funcionando, y eso no lleva mucho tiempo. Pero con Jenkins, cuando el testng-failed.xml se ejecuta la última vez, esto editará el testng-result.xml, por lo que ahora el gráfico indica "1 ejecución de prueba, 1 tiene éxito", porque la última ejecución, testng solo se ha iniciado esta prueba que falló las 3 primeras veces. Este método generará un gráfico con toda la prueba fallida, pero no se indicarán todas las pruebas de funcionamiento (excepto las pruebas que se ejecutan por tercera vez), no es exactamente lo que quiero ... ¿Alguna pista? – user1000499