Mostrando entradas con la etiqueta tips. Mostrar todas las entradas
Mostrando entradas con la etiqueta tips. Mostrar todas las entradas

martes, 11 de febrero de 2025

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 operativos podemos hacer lo siguiente:


private static String OS = System.getProperty("os.name").toLowerCase();

if(OS.contains("win")){
System.out.println("windows!");
}
if("mac"){
System.out.println("mac!");
}


Y así sucesivamente.


Fuentes:
https://stackoverflow.com/questions/14288185/detecting-windows-or-linux
https://automatizaciondefuncionales.blogspot.com/2023/08/como-saber-el-sistema-operativo-donde.html

jueves, 22 de agosto de 2024

Serenity.conf con Selenium grid y que funcione para Linux y Windows

Buenas lectores.

Les comparto mi archivo serenity.conf el cual funciona conectandome a un selenium grid que a su vez tiene varios nodos, entre ellos una combinación entre Windows  y Linux.

Con el siguiente serenity.conf pueden ejecutar en ambos sistemas operativos sin que salgan los mensajes de chrome crash: 


serenity {

  take.screenshots = FOR_FAILURES

  test.root = "starter.acceptancetests"

  logging = QUIET

}


headless.mode = true

webdriver {

  driver = remote

  capabilities {

    browserName = "chrome"

    acceptInsecureCerts = true

    "goog:chromeOptions" {

      args = ["ignore-certificate-errors","disable-popup-blocking","headless=new","start-maximized","no-sandbox","disable-dev-shm-usage","--disable-blink-features=AutomationControlled"]

    }

  }

  remote {

    url="http://localhost:4444/wd/hub"

    driver=chrome

    headless.mode = false

    capabilities {

    browserName = "chrome"

    acceptInsecureCerts = true

    "goog:chromeOptions" {

        args = ["ignore-certificate-errors","disable-popup-blocking","headless=new","start-maximized","no-sandbox","disable-dev-shm-usage","--disable-blink-features=AutomationControlled"]

    }

  }

  }

 }

Espero les sirva.

PD: No es necesario enviar el último flag.

Saludos.


Se te comienzan a quedar sesiones de chrome abiertas luego de ejecutar automatizaciones?

Buenas lectores.

Ha venido ocurriendo que en algunos proyectos ejecutados se van quedando procesos de chrome huerfanos ocasionando que el consumo de la CPU suba al 100% y finalmente la caida del servidor de pruebas.

He realizado descarte de muchos factores, sin embargo, el parámetro que parece funcionar es quitar el siguiente flag: "disable-gpu".

He probado y funciona con la creación directa del webdriver y también cuando lo parametrizamos desde el serenity.conf.

Espero les sirva el tip.

Saludos.