Que tal como están, Soy Juan Felipe de Colombia, mas exactamente de la ciudad de Cúcuta, compro la subscripción por que quiero dar un salto en mi nivel como QA estoy trabajando para una empresa local como Analista QA Jr, tengo 1 año de experiencia, ya había visto varios videos de Pato y me parecieron muy interesantes, así que voy a probar los cursos como me va, espero aprender mucho, de momento voy a dar un repaso a los fundamentales del testing y la visión que se tiene de un tester y luego pienso seguir con el de programación para testers
Muchas gracias
Yo tomé el curso de Java, Selenium y Cucumber hace un año atras y ahora estoy trabajando como QA Automation, me ayudó a dar el salto en mi carrera! Ahora me sumo a la membresía para tomar los cursos avanzados para seguir creciendo!!
Mil gracias <3
Hola Pau! Vos por ahí no te das cuenta del otro lado, pero me pone SUPER contento cuando me cuentan que pegan mejores puestos o que los ayudé de alguna forma! Gracias a vos por aprender conmigo!
Hola, hoy estoy invirtiendo aquí porque todos los cursos suenan interesantísimos, así que ojalá entienda todo y me ayude a crecer un poco más en mi carrera!
Bienvenido Seba! Si hay algo de lo que me siento muy contento es de la comunidad que tenemos. Te recomiendo pasar por el Discord también que hay muchas charlas interesantes ahí también.
Saludos, y hoy empezaré con la academia de Free Ranger Testers y es un placer. Aprovecharé al máximo cada enseñanza y daré con todo para aprender al maximo. 💪🔥
Un gustazo tenerte por acá Iván! Espero que te sea de provecho todo lo que hago :)
En multitud de páginas sobre las que hagamos automation testing, tendrán el famoso y 'amigable' popup de aceptar cookies.
Aplicando POM a nuestro código, no nos será difícil localizar el botón de 'Aceptar cookies' y seguir con los test automatizados que teníamos previstos... Pero, muchas veces tendremos el siguiente error al correr nuestros tests:
Esto es debido a que gracias a nuestro 'querido' popup, la página pierde el contexto actual y se interpreta como que se ha cerrado, y por lo tanto, no se puede continuar con la ejecución de los tests.
Esto lo solucionamos en dos pasos:
1.- En el POM que tengamos creado. Ponemos el atributo 'page' como PUBLICO:
2.- En la página donde tengamos los tests, pasar SIEMPRE el parámetro '{page}'
El código de la función de aceptar cookies en el POM sería por ejemplo el siguiente:
async accepXCookies(){
await expect(this.XCookiesButton).toBeVisible();
return this.XCookiesButton.click();
}
Por último, recordad que según la calidad de la conexión que tengamos...el 'bendito' popup tardará más o menos tiempo en aparecer... Podemos jugar con {timeout: x} pero en mi opinión, no es lo mas recomendable.
Espero que os haya servido de ayuda amigos!!
Saludos!!!!
Muy buenos días!!
Siguiendo con las pruebas en Robot Framework, os dejo este ejemplo de API testing:
*** Settings ***
Library REST https://mystoreapi.com
*** Variables ***
${ep_catalog} /catalog
${ep_product} /product
${ep_order} /order
${order} {"customer": "Pablo García", "address": "123 Main St"}
${product} {"name": "Banana","price": 0.99,"manufacturer": "General Fruit CO", "category": "fruits","description": "Super Banana","tags":"La noble fruta" }
${product_order} {"productId":"882580", "amount": 2}
${product_id} 882580
${category} fruits
*** Test Cases ***
EP_CATALOG. Listamos todas las categorias
REST.GET ${ep_catalog}/categories
Integer response status 200
[Teardown] Output response body
EP_CATALOG. Listamos todos los primeros 100 productos
REST.GET ${ep_catalog}/products?limit=100&skip=0
Integer response status 200
[Teardown] Output response body
EP_CATALOG. Listamos los 100 primeros productos de una categoria
REST.GET ${ep_catalog}/category/${category}/products?limit=100&skip=0
Integer response status 200
[Teardown] Output response body
EP_CATALOG. Listamos un producto por su ID
REST.GET ${ep_catalog}/product/${product_id}
Integer response status 200
[Teardown] Output response body
EP_CATALOG. Creamos, leemos y borramos un nuevo producto en la tienda
REST.POST ${ep_catalog}/product ${product}
Integer response status 201
${nuevo_prod_id} Integer response body id
Log To Console ${nuevo_prod_id}[0]
REST.GET ${ep_catalog}/product/${nuevo_prod_id}[0]
Integer response status 200
Log To Console response body
REST.DELETE ${ep_catalog}/product/${nuevo_prod_id}[0]
Integer response status 200
Set Suite Variable ${nuevo_prod_id}
[Teardown] Output response body
EP_ORDER. Creamos un nuevo pedido, añadimos un producto, listamos de nuevo el pedido, borramos el producto,listamos y borramos el pedido
REST.POST ${ep_order}/new ${order}
Integer response status 201
${order_id} Integer response body id
Log To Console response body
REST.POST ${ep_order}/${order_id}[0]/product ${product_order}
Integer response status 201
Log To Console response body
REST.GET ${ep_order}/${order_id}[0]
Integer response status 200
Log To Console response body
REST.DELETE ${ep_order}/${order_id}[0]/product/${product_id}
Integer response status 200
Log To Console response body
REST.GET ${ep_order}/${order_id}[0]
Integer response status 200
Log To Console response body
REST.DELETE ${ep_order}/${order_id}[0]
Integer response status 200
[Teardown] Output response body
Tips
Usamos la libreria REST
Ojo con las variables que recogemos del 'response body'
${nuevo_prod_id} Integer response body id
Son objetos tipo array por defecto.
Si queremos usar su valor, tenemos que pasar obligatoriamente el índice
REST.GET ${ep_catalog}/product/${nuevo_prod_id}[0]
En nuestro caso siempre será 0 ya que tenemos una colección con un único elemento.
Todos los resultados se muestran en el reporte integrado HTML dentro de la carpeta /results de nuestro proyecto
Espero que les sirva de ayuda.
Saludos!!
Lujazo de aporte! Recomendación, usando el slash podés darle formato de bloque de código al código para que quede más chuletón.
Muy buenos días!!
En este post les dejo una primera aproximación a RobotFramework.
Siguiendo la estela de Cypress y Playwright, este framework nos ayuda a realizar automation testing. Es open source y su instalación es muy sencilla.
FUNDAMENTAL !! Tener instalado Python
Desde CLI:
pip (o pip3) install robotframework (Se puede instalar también mediante brew)
Instalamos las librerías:
pip install robotframework-seleniumlibrary
pip install robotframework-browser
rfbrowser init (--skip-browsers EN CASO DE TENER YA INSTALADOS LOS BINARIOS DE LOS BROWSERS)
Nos creamos una carpeta....
Abrimos nuestro IDE y creamos un archivo con extension .robot
Copiamos el siguiente código de prueba
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
Abrir y verificar Título en FRT
Open Browser
... https://www.freerangetesters.com
... chrome
Maximize Browser Window
Title Should Be Free Range Testers
Close Browser
Le damos al 'PLAY' y comprobamos 'la magia' 🤣
Y tenemos generados unos reportes muy apañados.....
Ahora toca seguir profundizando en este interesante framework.
Os paso links de interés
SALUDOS!!!
Buenos días!!
Este post contiene dos maneras de automatizar pruebas en API desde Jenkins. El primer caso es un POST y GET de un nuevo usuario en la API https://petstore.swagger.io/ . El segundo, es una ejecución automatizada de una colección creada previamente en Postman y cómo a través de Newman, nos genera un reporte HTML que será accesible desde nuestra máquina local.
1.- POST y GET en https://petstore.swagger.io/ por medio de cURL
Pipeline script de Jenkins:
pipeline{
agent any
stages{
stage('Creacion usuarios'){
steps{
script{
sh(script:"curl -d 'name=Pepito&status=Aperrado' -X POST https://petstore.swagger.io/v2/pet/2")
sh(script:"curl -X GET https://petstore.swagger.io/v2/pet/2")
}
}
}
}
}
2.- Ejecución de una colección de Postman y generación de reporte con newman
API de pruebas : https://rickandmortyapi.com
Previamente tenemos nuestra colección de Postman guardada.
Importante marcar la opción en Jenkins Provide Node & npm bin/ folder to PATH Se adjunta en screenshot.
En 'Build Steps' :
cd /Users/usuario/Carpeta_Coleccion_Postman
newman run Rick\&Morty_API.postman_collection.json -r htmlextra
Espero que les sirva de ayuda.
Saludos!!
En Free Range Testers siempre estamos buscando formas innovadoras de compartir conocimientos y experiencias que enriquezcan a nuestros miembros. Es por eso que estamos contentos de presentarte El Dojo, un espacio diseñado para fomentar el aprendizaje colaborativo y la exposición de soluciones creativas en el mundo del testing y la calidad de software.
¿Qué es El Dojo?
Inspirado en los tradicionales dojos de artes marciales, donde el aprendizaje y la práctica van de la mano, El Dojo de Free Range Testers es un Topic interactivo donde la comunidad puede publicar hallazgos, ya sea aprendiendo nuevas herramientas o navegando los desafíos del trabajo diario. Este espacio está abierto para todos, desde novatos en el mundo del testing hasta veteranos experimentados, ofreciendo una plataforma para compartir esas joyas de sabiduría que han encontrado en su camino.
Compartir para crecer
En El Dojo, alentamos a nuestros miembros a publicar hallazgos útiles, trucos, guías paso a paso, y cualquier recurso que consideren valioso para el colectivo. ¿Descubriste una manera ingeniosa de automatizar pruebas con Selenium? ¿Tienes una técnica especial para usar Cypress.io que ahorra tiempo? ¡Este es el lugar para compartirlo! No solo se trata de resolver problemas, sino de mostrar cómo lo hiciste, proporcionando valor real a otros miembros que puedan enfrentar desafíos similares.
Visibilidad y reconocimiento
Lo mejor de compartir en El Dojo no es solo la satisfacción de contribuir al crecimiento de otros; también es una oportunidad única para ganar visibilidad y reconocimiento dentro de la comunidad y más allá. Cada artículo compartido en El Dojo será promovido en las redes sociales de Free Range Testers, destacando al autor y su contribución. Esta es una excelente manera de construir tu reputación en el campo, conectarte con otros profesionales y mostrar tu expertise y soluciones creativas al mundo.
¿Cómo participar?
Participar es fácil. Con una cuenta activa en Free Range Testers, simplemente dirígete a la sección El Dojo en la sección Comunidad de Free Range Testers y comienza a compartir tus experiencias, soluciones y aprendizajes. No importa si es un pequeño truco o una guía extensa; si crees que puede ayudar, queremos verlo. Y recuerda, la calidad y la originalidad cuentan, así que toma ese espíritu de innovación y úsalo para inspirar a otros.
Únete a El Dojo hoy
Ayuda a otros a aprender, gana reconocimiento por tu trabajo y sé parte de una comunidad que valora la colaboración y la innovación. ¡Estamos ansiosos por ver tus contribuciones y celebrar juntos el arte del testing de software!
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.Assert;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class UITestSample {
private WebDriver driver;
@BeforeMethod
public void setup() {
System.setProperty("webdriver.chrome.driver", "path/to/chromedriver");
driver = new ChromeDriver();
driver.get("http://example.com/login");
}
@Test
public void testSuccessfulLogin() {
WebElement usernameField = driver.findElement(By.id("username"));
WebElement passwordField = driver.findElement(By.id("password"));
WebElement loginButton = driver.findElement(By.id("loginButton"));
usernameField.sendKeys("testUser");
passwordField.sendKeys("testPassword");
loginButton.click();
WebElement successMessage = driver.findElement(By.id("success"));
Assert.assertTrue(successMessage.isDisplayed());
}
}
Un placer tenerte en la comunidad Juan! Qué país lindo Colombia 🇨🇴!!! Te invito a que te sumes al Discord de la comunidad y te presentes ahí también y, por qué no, compartas alguna foto de tus tierras!