jueves, 13 de febrero de 2025

Extensiones de chrome para testers

Buenas lectores.

Existen muchas extensiones que brindan utilidad al momento de realizar pruebas de software, sin embargo, esta lista es de las más indispensables en tu cajon de trucos

Fake Data - Un form filler que te ayudará a encontrár más

Funcionalidad: Inserta datos aleatorios en cualquier campo de formulario.

Pasos a seguir:

  1. Instala Fake Data en tu navegador.

  2. Abre cualquier formulario y haz clic derecho en el campo donde deseas insertar datos.

  3. Selecciona el tipo de datos que deseas insertar (nombre, correo electrónico, dirección, etc.).

  4. Puedes llenar campos individuales o completar todo el formulario a la vez.

Principales usos: Pruebas de formularios, generación de datos de prueba, automatización de tareas.

Beneficios: Aumenta la eficiencia al eliminar la necesidad de ingresar datos manualmente, reduce errores humanos y permite la creación de datos personalizados mediante código JavaScript.

Opinión: Es esencial para cualquier desarrollador o tester que trabaje con formularios, ya que ahorra tiempo y facilita la creación de datos de prueba realistas.


ModHeader - Modificar encabezados HTTP

Funcionalidad: Modifica encabezados de solicitud y respuesta HTTP.

Pasos a seguir:

  1. Instala ModHeader en tu navegador.

  2. Abre el panel de ModHeader y añade/elimina/modifica encabezados según tus necesidades.

  3. Guarda y activa los cambios para ver cómo afectan las respuestas del servidor.

Principales usos: Depuración de aplicaciones web, pruebas de rendimiento, simulación de diferentes entornos de red.

Beneficios: Permite ajustar y probar diferentes configuraciones de encabezados sin modificar el código fuente, facilitando la identificación y solución de problemas.

Opinión: Es una herramienta indispensable para cualquier desarrollador o tester que trabaje con aplicaciones web, ya que mejora la capacidad de depuración y optimización.


Clear Cache - Borrar caché y cookies

Funcionalidad: Elimina datos almacenados en caché y cookies del navegador.

Pasos a seguir:

  1. Abre tu navegador y ve a la configuración de privacidad.

  2. Selecciona la opción para eliminar datos de navegación.

  3. Elige el período de tiempo (última hora, desde siempre, etc.) y los tipos de información que deseas eliminar (caché, cookies, etc.).

  4. Haz clic en "Eliminar datos" para borrar la caché y las cookies.

Principales usos: Solución de problemas de carga de sitios web, mejora del rendimiento del navegador, eliminación de datos antiguos.

Beneficios: Ayuda a resolver problemas de formato y carga de sitios web, libera espacio en el dispositivo y mejora la privacidad al eliminar datos antiguos.

Opinión: Es una herramienta esencial para cualquier usuario de internet, ya que mejora la experiencia de navegación y la privacidad.


JavaScript deshabilitado en Chrome

Funcionalidad: Desactiva JavaScript en el navegador Chrome.

Pasos a seguir:

  1. Abre Chrome y ve a la configuración.

  2. Selecciona "Privacidad y seguridad" y luego "Configuración de contenido".

  3. En la sección "JavaScript", desactiva la opción "Permitido (recomendado)".

  4. Reinicia el navegador para que los cambios surtan efecto.

Principales usos: Pruebas de accesibilidad, depuración de JavaScript, mejora de la seguridad al reducir la superficie de ataque.

Beneficios: Permite identificar problemas de accesibilidad y seguridad, facilita la depuración de código JavaScript y mejora la experiencia del usuario al reducir el uso de scripts.

Opinión: Es una herramienta valiosa para desarrolladores y testers que necesitan evaluar la accesibilidad y seguridad de sus aplicaciones web. Recuerda siempre probar los requerimientos con js desactivado.


Fuentes:

https://chromewebstore.google.com/detail/fake-data-a-form-filler-y/gchcfdihakkhjgfmokemfeembfokkajj

https://chromewebstore.google.com/detail/modheader-modify-http-hea/idgpnmonknjnojddfkpgkljpfnnfcklj

https://chromewebstore.google.com/detail/pixel-perfect-pro/nnhifpoojdlddpnhjbhiagddgckpmpfb

https://chromewebstore.google.com/detail/clear-cache/cppjkneekbjaeellbfkmgnhonkkjfpdn

https://chromewebstore.google.com/detail/javascript-deshabilitado/jbjdopljoflabmgndibnfmnmojbafaog?hl=es-419



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

Subir un proyecto de automatización a Azure repos

 Buenas lectores.


Constantemente estamos  creando proyectos y siempre se nos olvidan los comandos para hacerlo, esto es normal puesto que nuestro día a día está enfocado en otras cosas y este proceso se hace una vez cada proyecto. Así que decidí dejar escrito los comandos para que siempre tengas accesos a el.


1- Creas un nuevo repositorio donde vas a subir tu repositorio local



2- Copias la ruta que te crea o simplemenete lo clonas




3- En tu folder local inicias git y subes tus cambios, recuerda cambiar el origin por el que copiamos desde azure

git init

git add .

git commit -m "first commit"

git remote add origin https://github.com/NOMBRE_USUARIO/NOMBRE_PROYECTO.git

git push -u origin master


4- Disfrutar tu proyecto en azure totalmente versionado.


NOTA:

El resto de cambios que quieras subir a azure puedes hacerlo mediante 

git push

Sin necesidad de especificar nuevamente el origin


Saludos cordiales.


Fuentes:

https://gist.github.com/cgonzalezdai/cc33db72a6fe5178637aabb562eae35c

https://learn.microsoft.com/es-es/azure/devops/repos/git/create-new-repo?view=azure-devops

https://automatizaciondefuncionales.blogspot.com/2024/02/subir-mi-proyecto-local-azure-repos.html

domingo, 29 de diciembre de 2024

Selenium 4.27 - Deprecación del método getAttribute

¡Hola lectores!

Si has actualizado a Selenium 4.27 y te has llevado la sorpresa de que al usar el método getAttribute aparece como deprecado, no te preocupes. Aquí te explico qué debes hacer para actualizarte y, sobre todo, cómo mantener tu código limpio y sin deuda técnica.

¿Qué es el método getAttribute?

El método getAttribute ha sido una herramienta fundamental en Selenium para obtener el valor de un atributo de un elemento HTML. Por ejemplo, si querías obtener el valor de un campo de entrada, usarías getAttribute("value").

¿Por qué está siendo deprecado?

El método getAttribute ha sido deprecado en Selenium 4.27 por varias razones:

  • Uso incorrecto: Muchos usuarios intentaban usar getAttribute para obtener el texto visible (innerText), lo cual llevaba a resultados inconsistentes en diferentes navegadores.

  • Nueva aproximación: Selenium quiere hacer las cosas más fáciles y limpias para los desarrolladores. Al alejarse de getAttribute, la biblioteca fomenta el uso de métodos más específicos diseñados para sus respectivas tareas.

Nuevos métodos: getDomProperty y getDomAttribute

Para reemplazar getAttribute, Selenium ha introducido dos nuevos métodos:

  • getDomProperty: Para propiedades del DOM como value, checked, selected, etc.

  • getDomAttribute: Para atributos HTML como id, class, href, src, etc.

Ventajas de los nuevos métodos

  • Precisión: Estos métodos son más precisos y específicos, lo que reduce la posibilidad de errores y resultados inconsistentes.

  • Rendimiento: Al ser más específicos, estos métodos pueden mejorar el rendimiento de tus pruebas.

  • Compatibilidad: Los nuevos métodos están mejor alineados con los estándares modernos de navegadores web, lo que garantiza una mayor compatibilidad.

Ejemplo de migración

Antes (usando getAttribute):

WebElement element = driver.findElement(By.id("username"));

String value = element.getAttribute("value");


Después (usando getDomProperty):

WebElement element = driver.findElement(By.id("username"));
String value = element.getDomProperty("value");

Conclusión

La deprecación del método getAttribute en Selenium 4.27 es un paso importante hacia pruebas más precisas y fiables. Al adoptar los nuevos métodos getDomProperty y getDomAttribute, tus scripts de automatización serán más robustos y futuros.

Espero que esta información te sea útil. Si tienes alguna pregunta o necesitas más detalles, no dudes en comentar. ¡Hasta la próxima!


Fuentes:
https://www.youtube.com/watch?v=qMiu4DIomyE

miércoles, 6 de noviembre de 2024

La Hoja de Ruta Definitiva para Ingenieros de QA: Tu Guía para el Éxito

Buenas lectores.

Debido a que muchos lectores cumplen el rol de QA, he decidido publicar algunos temas relacionados para que puedan mejorar sus perfiles.

A medida que avanzan las prácticas de desarrollo de software, también lo hacen las expectativas y responsabilidades de los ingenieros de QA. Si estás comenzando una carrera en QA o buscando perfeccionar tus habilidades, tener una hoja de ruta clara es esencial.

El día de hoy vamos a revisar una hoja de ruta donde encontraras todos los temas importantes que debes conocer siendo QA. Puedes comenzar primero con los temas principales e ir tachando de tu lista que herramientas y temas conoces sobre cada tema principal. Muy seguramente en este blog estaremos revisando algunos de los temas. 

No siendo más, les dejo la hoja de ruta:




Esta guía te llevará a través de las áreas clave en las que debes enfocarte, asegurándote de estar preparado para sobresalir en el campo.


El Aseguramiento de la Calidad no se trata solo de encontrar errores; se trata de asegurar la calidad general del producto. Un ingeniero de QA debe pensar críticamente, anticipar posibles problemas y abogar por la experiencia del usuario final. Adicionalmente ten en cuenta que Más Allá de la Funcionalidad, Las pruebas no funcionales aseguran que tu aplicación no solo funcione, sino que funcione bien bajo diversas condiciones.


Conclusión: Sigue Aprendiendo

El campo de QA está en constante evolución. Las herramientas y técnicas mencionadas en esta hoja de ruta son solo el comienzo. Para mantenerte a la vanguardia, necesitas aprender y adaptarte continuamente.

Participa en comunidades de QA, asiste a seminarios web y sigue a líderes de la industria para mantenerte actualizado sobre las últimas tendencias y herramientas.

Recuerda, el objetivo de un ingeniero de QA no es solo encontrar errores, sino asegurar la entrega de software de alta calidad. Siguiendo esta hoja de ruta y expandiendo continuamente tu conocimiento, estarás bien preparado para enfrentar cualquier desafío de QA que se te presente.


Fuente:

https://medium.com/@monish.correia/the-ultimate-qa-engineer-roadmap-your-guide-to-success-7244ad97fe21

martes, 5 de noviembre de 2024

Automatización con Java y Selenium (Todo lo que necesitas para comenzar)

Buenos días lectores.


Selenium es una potente herramienta (marco de código abierto) para automatizar aplicaciones web en múltiples navegadores y plataformas. Con soporte para varios lenguajes de programación como Java, permite crear scripts de prueba robustos que simulan interacciones de usuario.

Aquí te voy a dejar lo básico para manejarlo, con solo saber esto ya podrás automatizar todos los sitios:


Abrir un Navegador y Navegar a una URL:

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;

public class OpenBrowser {

    public static void main(String[] args) {

        WebDriver driver = new ChromeDriver();

        driver.get("https://example.com");

        driver.quit();

    }

}


Encontrar Elementos Usando Diferentes Localizadores:

Por ID:

driver.findElement(By.id("elementID")).click();

Por Nombre:

driver.findElement(By.name("elementName")).sendKeys("input text");

Por XPath:

driver.findElement(By.xpath("//input[@id='elementID']")).click();

Por Selector CSS:

driver.findElement(By.cssSelector("#elementID")).click();


Hacer Clic en un Botón

driver.findElement(By.id("buttonID")).click();


Escribir texto en un cuadro de Texto

driver.findElement(By.name("textboxName")).sendKeys("Sample Text");


Hacer clic en un checkbox (Casillas de Verificación)

WebElement checkbox = driver.findElement(By.id("checkboxID"));

checkbox.click();

System.out.println(checkbox.isSelected());  // Verificar si está seleccionada


Manejo de Listas Desplegables

Select dropdown = new Select(driver.findElement(By.id("dropdownID")));

dropdown.selectByVisibleText("OptionText");


Esperar a que un Elemento Sea Visible y dar click cuando este visible

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));

WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("elementID")));

element.click();


Manejo de Alertas

Aceptar Alerta:

Alert alert = driver.switchTo().alert();

alert.accept();


Rechazar Alerta:

Alert alert = driver.switchTo().alert();

alert.dismiss();


Manejo de Múltiples Ventanas

String parentWindow = driver.getWindowHandle();

Set<String> allWindows = driver.getWindowHandles();


for (String window : allWindows) {

    if (!window.equals(parentWindow)) {

        driver.switchTo().window(window);

    }

}

// Volver a la ventana principal

driver.switchTo().window(parentWindow);


Manejo de Carga de Archivos

driver.findElement(By.id("uploadButtonID")).sendKeys("C:\\path\\to\\file.txt");


Tomar Capturas de Pantalla

File srcFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

FileUtils.copyFile(srcFile, new File("path/to/screenshot.png"));


Extraer Texto de un Elemento Web

String elementText = driver.findElement(By.xpath("//div[@id='elementID']")).getText();

System.out.println(elementText);


Manejo de Marcos (Iframes)

Por Índice:

driver.switchTo().frame(0);

Por Nombre o ID:

driver.switchTo().frame("frameNameOrID");


Manejo de Elementos Dinámicos

driver.findElement(By.xpath("//*[contains(@id, 'dynamicPart')]")).click();


Realizar Acción de Hover con el Ratón

Actions actions = new Actions(driver);

WebElement element = driver.findElement(By.id("elementID"));

actions.moveToElement(element).perform();


Acción de Arrastrar y Soltar (Drag and drop)

Actions actions = new Actions(driver);

WebElement source = driver.findElement(By.id("sourceElementID"));

WebElement target = driver.findElement(By.id("targetElementID"));

actions.dragAndDrop(source, target).perform();


Aserciones en TestNG/JUnit

Aserción en TestNG:

import org.testng.Assert;

String pageTitle = driver.getTitle();

Assert.assertEquals(pageTitle, "Expected Title");


Aserción en JUnit:

import static org.junit.Assert.*;

String pageTitle = driver.getTitle();

assertEquals("Expected Title", pageTitle);


Cerrar el Navegador

Cerrar la ventana actual del navegador:

driver.close();


Terminar la sesión de WebDriver (cerrar todas las ventanas):

driver.quit();


Esta lista cubre preguntas y soluciones esenciales proporcionando una base sólida para la preparación de entrevistas. Así que tienes un 2x1.


Saludos


Fuentes:

https://www.linkedin.com/pulse/basic-selenium-java-automation-testing-kushal-parikh-kgsxf/

martes, 17 de septiembre de 2024

Sitios web para practicar automatización de pruebas WebUI

 En el ámbito de la automatización de pruebas WebUI, la práctica constante es fundamental para adquirir experiencia y mejorar las habilidades técnicas. Estos sitios web también ofrecen otros beneficios significativos para los profesionales y estudiantes de pruebas de software. Afortunadamente, existen varios sitios web gratuitos y abiertos diseñados específicamente para brindar oportunidades de práctica en herramientas populares como Selenium, Cypress y Playwright.

Github User – Starter

Este sitio web proporciona una plataforma para practicar la automatización de pruebas en aplicaciones web de GitHub. Permite realizar búsquedas y explorar perfiles de usuarios, lo que ofrece una excelente oportunidad para poner a prueba las habilidades de automatización de pruebas en un entorno real.

Enlace: https://gh-users-search.netlify.app/

Swag Labs

Swag Labs es un sitio de demostración que ofrece una amplia gama de escenarios de prueba para aplicaciones de comercio electrónico. Los usuarios pueden practicar la automatización de pruebas en diversos aspectos, como la navegación por el sitio, la selección y compra de productos, y la gestión del carrito de compras.

Enlace: https://www.saucedemo.com/

DEMOQA

DEMOQA es una plataforma de demostración que ofrece una variedad de herramientas y aplicaciones para practicar la automatización de pruebas. Desde formularios y ventanas emergentes hasta interacciones complejas de elementos de página, este sitio proporciona una amplia gama de escenarios de prueba para mejorar las habilidades en la automatización de pruebas WebUI.

Enlace: https://demoqa.com/

Automation Exercise

Este sitio web ofrece ejercicios prácticos y desafiantes para aquellos que desean mejorar sus habilidades en la automatización de pruebas. Con una variedad de escenarios de prueba, los usuarios pueden poner a prueba su conocimiento y experiencia en herramientas de automatización como Selenium, Cypress y Playwright.

Enlace: https://automationexercise.com/

Expand Testing

Expand Testing proporciona una serie de ejercicios de práctica para la automatización de pruebas en aplicaciones web. Con casos de prueba estructurados y detallados, este sitio ofrece una excelente oportunidad para desarrollar habilidades en la automatización de pruebas WebUI en un entorno controlado y seguro.

Enlace: https://practice.expandtesting.com/

Test Pages by Evil Tester

est Pages es un sitio web creado por Evil Tester que ofrece una variedad de escenarios de prueba diseñados específicamente para poner a prueba las habilidades en la automatización de pruebas WebUI. Con ejercicios que abarcan desde formularios simples hasta interacciones complejas de elementos de página, este sitio ofrece una excelente oportunidad para practicar y mejorar las habilidades en la automatización de pruebas.

Enlace: https://testpages.eviltester.com/styled/index.html

UI Test Automation Playground

Este sitio web proporciona un entorno de práctica interactivo para la automatización de pruebas de interfaz de usuario (UI). Con una variedad de ejemplos y desafíos, los usuarios pueden experimentar con herramientas de automatización como Selenium y Cypress para mejorar sus habilidades en la automatización de pruebas WebUI.

Enlace: http://www.uitestingplayground.com/

Estos sitios web ofrecen una valiosa oportunidad para practicar y mejorar las habilidades en la automatización de pruebas WebUI en un entorno práctico y controlado. Al participar en estos ejercicios y escenarios de prueba, los profesionales pueden adquirir experiencia práctica y desarrollar competencias técnicas fundamentales en el campo de la automatización de pruebas.



Fuente del articulo:

https://mteheran.dev/sitios-web-para-practicar-automatizacion-de-pruebas-webui/