Entradas

Mostrando entradas de agosto, 2023

Como capturar los responses que hace el sitio mientras automatizamos el frontend

Buenas lectores. Cuando estamos automatizando y por algún motivo la interfaz presenta error y/o se queda sin permitir ninguna acción; no es suficiente con reportar el bug puesto que en la mayoría del tiempo esto ocurre de manera aleatoria. Para esto, es mejor estar preparados e imprimir la mayor cantidad de información que le permitan al desarrollador de la aplicación saber que pudo suceder en ese momento. Una forma facil y muy util es imprimir todas las peticiones que se envían por backend para saber si en algún momento algún servicio deja de funcionar. Para lograrlo vamos a interactuar con el devtools de chrome, cabe destacar que para poder usarlo debemos tener como mínimo Selenium v4. Vamos al ejemplo: Selenium directo :  import java.time.Duration; import java.util.HashMap; import java.util.Optional; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.devtools.HasDevTool...

Como capturar el response cuando estamos trabajando con SerenityBDD, RestAssured y screenplay

Buenas lectores Alguna vez te has preguntado como puedo imprimir en consola o ver la respuesta de una petición a un servicio cuando estamos usando screenplay?, normalmente en la documentación encontramos lo siguiente: @Test public void list_all_users() {     Actor sam = Actor.named("Sam the supervisor")                      .whoCan(CallAnApi.at(theRestApiBaseUrl));     sam.attemptsTo(             Get.resource("/users")     );     sam.should(             seeThatResponse("all the expected users should be returned",                     response -> response.statusCode(200)                                         .body("data.first_name", hasItems("George", "Janet", "Emma")))     ...

Como saber que navegador esta ejecutando la automatización usando serenityBDD

Buenas lectores.  En algún momento puedes necesitar acceder a las características del navegador que está ejecutando la prueba, por ejemplo , saber si se está ejecutando en modo background. Para esas necesidades necesitamos acceder a la capabilities del navegador que está ejecutando la prueba.  Podemos hacerlo de la siguiente manera: Manera "screenplay": String browser = RemoteDriver.of(BrowseTheWeb.as(actor).getDriver()).getCapabilities().getBrowserName(); System.out.println("Browser: "+browser); Manera "pom": String browser =  RemoteDriver.of(Serenity.getDriver()).getCapabilities().getBrowserName(); System.out.println("Browser: "+browser); En screanplay funcionan ambas, la diferencia dependería del actor. En el ejemplo anterior podemos saber que navegador está ejecutando actualmente la prueba. Coordial Saludo. Fuentes: https://github.com/serenity-bdd/serenity-core/issues/2225 https://chromedriver.chromium.org/capabilities https://webdriver.io/es...

Como configurar el tamaño de la ventana de chrome cuando lanzas una automatización con SerenityBDD

Buenas lectores. Cuando lanzamos nuestra automatización en modo "background" siempre se envía un tamaño de ventana por defecto, esto hace que algunos escenario fallen por ser una pantalla pequeña. Para solucionar o manipular el tamaño simplemente enviamos por medio de chromeoptions el tamaño deseado de la siguiente forma: ChromeOptions chromeOptions = new ChromeOptions(); chromeOptions.AddArgument("--window-size=1300,1000"); Cuando trabajamos con SerenityBDD tenemos la ventaja que el mismo nos levanta la sesión, para manipular el tamaño simplemente agregamos al serenity.conf lo siguiente: "goog:chromeOptions" {         args = ["start-maximized", "no-sandbox", "ignore-certificate-errors", "disable-popup-blocking","headless"," --window-size=1920,1080 "                 "disable-default-apps", "disable-extensions-file-access-check", "disable-infobars", "disable-gpu...

Como saber el sistema operativo donde se está ejecutando la automatización de pruebas

Buenas lectores. Siguiendo con los tips de reconocer versiones, esta vez, vamos a revisar como identificamos la versión del sistema operativo donde se está corriendo el robot (automatización de pruebas). Eso es muy util cuando nos encontramos con la necesidad de interactuar con el sistema de archivos. En java es super sencillo hacerlo, con esta simple sentencia: System.getProperty("os.name");   Ejemplo real: System . out . println ( System . getProperty ( "os.name" )) ; if ( System . getProperty ( "os.name" ) . contains ( "Windows" )) { archive = "\\data_source.xlsx" ; } else { archive = "/ data_source .xlsx" ; } El ejemplo anterior compara si estamos usando windows, añade a la cadena del archivo la dirección del archivo, si no es windows, en este caso es linux por ende, añade la cadena del archivo en formato linux. En caso de querer algo mas específico porque corremos el robot en más sistemas op...