Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Mr. Bones

#21
Por lo que vengo siguiendo, es muy nuevo, hay info pero poca y claro su documentación. pienso que no estas equivocado para nada
#22
QA (Quality Assurance) / 01 - Playwright - Capítulo piloto
Septiembre 16, 2023, 06:10:18 PM
Playwright



¿Qué es Playwright?

Playwright es una biblioteca de automatización de pruebas de código abierto desarrollada inicialmente por colaboradores de Microsoft. Admite lenguajes de programación como Java, Python, C# y NodeJS. Playwright viene con licencia Apache 2.0 y es más popular con NodeJS con Javascript/Typecript. Este tutorial de Playwright le ayudará a configurar NodeJS utilizando Visual Studio Code.

¿Por qué elegir Playwright Automation?

Aunque Playwright es nuevo en el mercado, difícilmente podemos enumerar las limitaciones, ya que admite varios idiomas. Las personas que quieran migrar de Selenium a Playwright pueden hacerlo rápidamente ya que Playwright admite C#, Java y Python. Los lenguajes de programación no son una barrera. El primer lanzamiento de Playwright fue en enero de 2020 y desde entonces ha ganado mucha popularidad.

  • Aprovecha el protocolo DevTools para escribir pruebas automatizadas potentes y estables.[/size
  • Puede ver y controlar el navegador en lugar de depender de una capa de traducción intermedia; permite la simulación de escenarios de usuario más reveladores y relevantes.


Ventajas de la automatización con Playwright

Los colaboradores de los dramaturgos son muy activos en el lanzamiento de nuevas funciones cada mes, que se enumeran a continuación:

  • Fácil instalación y configuración: al ser un marco de automatización de pruebas , solo necesita una configuración ya que la instalación no lleva mucho tiempo. Dependiendo del idioma que usemos con Playwright, los pasos de instalación pueden cambiar
  • Compatibilidad con varios navegadores: todos los navegadores de la familia Chromium (Chrome, Edge), Webkit (Safari) y Firefox son compatibles.
  • Compatibilidad con varios idiomas: Playwright admite Java, C#, Python, Javascript/Typecript, lo que la convierte en una opción popular. La mayoría de los marcos modernos de automatización de pruebas de código abierto omiten esta característica.
  • Tipos de pruebas: Playwright admite pruebas funcionales, de extremo a extremo y de API. Con un complemento de terceros, Playwright se puede integrar con Accessibility Testing .
  • Pruebas de navegador paralelo: Playwright también admite la ejecución de pruebas simultáneas (también conocidas como  pruebas paralelas ) a través del contexto del navegador y puede ejecutar pruebas paralelas con varios navegadores. Esto amplía las pruebas y resulta útil cuando se deben probar varias páginas web simultáneamente.
  • Compatibilidad con múltiples pestañas/ventanas del navegador: Playwright admite múltiples pestañas y múltiples ventanas . Algunos casos de prueba deben verificar el escenario iniciando una nueva ventana y regresando a la ventana principal. Playwright admite todos los diferentes tipos de casos de prueba.
  • Reporteros integrados: el marco Playwright, de forma predeterminada, viene con muchos reporteros valiosos como List, Dot, Line, JSON, JUnit y HTML Reporters. Lo interesante es que con Playwright, uno puede crear reporteros personalizados. Playwright también apoya al reportero externo Allure Report.
  • Compatibilidad con mecanografiado lista para usar: no se requiere configuración para la compatibilidad con el lenguaje mecanografiado, ya que comprende su código mecanografiado y javascript.
  • Soporte de integración CI/CD: Playwright admite la integración CI/CD. Incluso proporciona imágenes acoplables para algunos enlaces de idiomas.
  • Compatibilidad con herramientas de depuración: las pruebas de Playwright admiten diferentes opciones de depuración, lo que las hace fáciles de usar para los desarrolladores. Algunas opciones de depuración son Playwright Inspector, VSCode Debugger, Browser Developer Tools y Trace Viewers Console Logs.


Otras características notables de Playwright incluyen:

  • Soporte de marco flotante
  • Soporte para el modelo de objetos de página
  • Reporteros incorporados
  • Patrón de objeto de página
  • Soporte de navegación entre orígenes
  • Soporte de selectores
  • DOM en la sombra
  • Espera automática
  • Soportes de ejecución de pruebas de terceros
  • Vídeos y captura de pantalla
  • Emulación del navegador
  • reintento de prueba,
  • Proyecto parametrizado, etc.





Si te llamó la atención, te gusta programar y testear, no te lo pierdas.


#23
Pronto voy a realizar un post de este tema
#24
Podes brindar ejemplos de selectores por Xpath
#25
Pasos para crear una API Rest

A continuación, te proporcionaré una guía paso a paso para crear una API de prueba simple utilizando Django Rest Framework (DRF), que es una potente biblioteca para crear APIs RESTful en Django.



Paso 1: Configuración del entorno Asegúrate de tener Python instalado en tu sistema. Luego, puedes crear un entorno virtual para tu proyecto:

Código: php
python -m venv myenv

Activa el entorno virtual:

•    En Windows:

Código: php
myenv\Scripts\activate

•    En macOS y Linux:
 

Código: php
source myenv/bin/activate

Paso 2: Instala Django y Django Rest Framework Dentro del entorno virtual, instala Django y Django Rest Framework:

Código: php
pip install django
pip install djangorestframework

Paso 3: Crea un nuevo proyecto Django Crea un nuevo proyecto Django:

Código: php
django-admin startproject projectname

Reemplaza projectname con el nombre de tu proyecto.

Paso 4: Crea una aplicación Dentro del proyecto, crea una nueva aplicación:

Código: php
cd projectname python manage.py startapp myapp

Paso 5: Configura la aplicación en tu proyecto Agrega la aplicación recién creada al archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de tu proyecto:

Código: php
INSTALLED_APPS = 
[ # ...
'myapp',
'rest_framework', 
]

Paso 6: Define un modelo En el archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de tu aplicación, define un modelo que represente los datos que deseas exponer a través de la API. Por ejemplo:

Código: php
from django.db import models
 
    class Item(models.Model): 
    name = models.CharField(max_length=100) 
    description = models.TextField() 
    def __str__(self): 
    return self.name 

Paso 7: Crea migraciones y aplica los cambios a la base de datos Ejecuta los siguientes comandos para crear migraciones y aplicar los cambios a la base de datos:

Código: php
python manage.py makemigrations 
python manage.py migrate


Paso 8: Crea un serializador En tu aplicación, crea un archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y define un serializador para el modelo Item:

Código: php
from rest_framework import serializers
from .models import Item

class ItemSerializer(serializers.ModelSerializer):
   class Meta: model = Item 
   fields = '__all__'

Paso 9: Crea vistas y rutas (URLs) En tu aplicación, crea un archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y define una vista utilizando DRF:

Código: php
from rest_framework import generics
from .models import Item
from .serializers import ItemSerializer 

class ItemList(generics.ListCreateAPIView): 
    queryset = Item.objects.all() 
    serializer_class = ItemSerializer

Luego, configura las rutas (URLs) en el archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta de tu aplicación:

Código: php
from django.urls import path
from .views import ItemList 
urlpatterns = [ 
        path('items/', ItemList.as_view(), name='item-list'), 
]

Paso 10: Ejecuta el servidor de desarrollo Inicia el servidor de desarrollo de Django para probar tu API:

Código: php
python manage.py runserver

Ahora puedes acceder a tu API en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Puedes usar herramientas como curl, httpie, o un navegador web para realizar solicitudes a la API y probar su funcionalidad.
Este es un ejemplo simple de cómo crear una API de prueba con Python y Django utilizando el Django Rest Framework. Puedes agregar más modelos, vistas y funcionalidades según tus necesidades específicas.
#26
Las mejores APIs públicas para practicar

En el mundo del desarrollo, la práctica hace al maestro. Es por eso que debes encontrar todas las formas posibles de practicar. En este blog te explicaremos 6 APIs públicas y gratuitas que te ayudarán a hacer todo tipo de pruebas y desarrollar prototipos de aplicaciones frontend.

APIs enumeradas

1. API de Marvel

Esta es la favorita de muchos devs. Para poder usarla, solo debes registrarte en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y podrás consumir todo el contenido de Marvel como los personajes, los comics, las películas, los videojuegos y mucho más.



2. PokéAPI

Esta API posee una documentación muy bien detallada para que aprendas a consumirla. Además, tiene mucha información de los Pokémon como sus movimientos, habilidades, tipos, poderes, habitad y más. Con esta API puedes crear fácilmente un pokedex 😁.

¡Ingresa a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y comienza a usarla ahora!




3. COVID Tracking

¿Quieres hacer algo más serio? entonces la API COVID Tracking es para ti. Consume datos del COVID-19 de todo el mundo como número de contagios, pruebas, pacientes hospitalizados, fallecidos y mucho más. Ingresa No tienes permitido ver los links. Registrarse o Entrar a mi cuenta para comenzar a usarla.



4. Nomics

Si lo que necesitas hacer es económico, entonces entra a No tienes permitido ver los links. Registrarse o Entrar a mi cuenta y podrás consumir los datos de las principales criptomonedas del mundo. Es decir, sus precios, cambios y predicciones. Con esta información podrás crear aplicaciones móviles, bots comerciales, gráficos y mucho más. ¡Solo debes generar tu clave API gratis!



5. OpenWeather APIs

Esta es una de las mejores APIs para obtener información del clima, como los datos meteorológicos del día y de los años anteriores, previsión climática, radiación solar, e incluso, podrás consumir una colección de mapas. No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



6. No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Proporciona una API de prueba que simula una API RESTful para realizar operaciones CRUD (Crear, Leer, Actualizar, Borrar) en datos ficticios, ideal para prácticas de desarrollo y pruebas de API.



Ya conoces APi's públicas que te ayudarán a practicar y tener más herramientas profesionales para ser un QA Engineer. ¿Todavía no sabes desarrollar APIs? No te preocupes, próximamente voy a subir más info para vos.



#27
Dudas y pedidos generales / buscador de cypress
Septiembre 05, 2023, 11:28:49 AM
porque no aparece el buscador de cypress en algunos módulos de las páginas, ejemplo el register de mercado pago
#28
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


📦 Pruebas de CAJA NEGRA, BLANCA y GRIS 📦


📦 CAJA NEGRA: En lugar de examinar el código fuente, los testers se centran en probar las entradas y salidas esperadas del sistema.

✅ EJ: Tienes una aplicación de calculadora en tu teléfono. Quieres asegurarte de que funcione correctamente, pero no necesitas saber cómo está programada internamente. Eso es una prueba de caja negra.

📦 CAJA BLANCA: Los testers conocen la estructura interna del software. El objetivo es evaluar cómo se procesan los datos y cómo interactúan los diferentes componentes dentro del sistema. Tenemos acceso a "Base de Datos, Apis y Código"

✅ EJ: Revisar el código fuente de una función de sumar en un programa y diseñar casos de prueba para verificar si maneja correctamente diferentes tipos de números.

📦 CAJA GRIS: Son un equilibrio entre las pruebas de caja blanca y caja negra, aprovechando el conocimiento parcial del sistema para diseñar pruebas que aborden tanto la funcionalidad externa como la lógica interna del software.

✅ EJ: Imagina que estás probando una app GPS y sabes que el software considera tanto la distancia como el tráfico en sus cálculos de ruta, pero no tienes acceso al código exacto del algoritmo. Diseñas casos de prueba utilizando ubicaciones cercanas y lejanas en diferentes momentos del día para evaluar si las rutas recomendadas son precisas y eficientes.



#29
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Comparación entre Cypress y Playwright: ¿Cuál es la Mejor Herramienta para Automatización de Pruebas Web?

La automatización de pruebas de aplicaciones web es esencial en el desarrollo de software para garantizar la calidad y el rendimiento. Dos herramientas populares para este propósito son Cypress y Playwright, cada una con sus propias ventajas y características únicas. A continuación, comparamos ambas herramientas para ayudarte a tomar una decisión informada.



AspectoCypressPlaywright
BrowserPrincipalmente para Chrome y Electron.Admite varios navegadores, incluyendo Chrome, Firefox, WebKit (Safari), y más.
Lenguaje de ProgramaciónJavaScriptJavaScript, TypeScript, Python, C# (según el lenguaje de la biblioteca)
Facilidad de UsoSintaxis simple y fácil de aprender.Sintaxis intuitiva y fácil de aprender.
Velocidad de EjecuciónRápido y eficiente para aplicaciones pequeñas y medianas.Rápido y eficiente para aplicaciones de cualquier tamaño.
Comunidad y SoporteComunidad activa y buena documentación.Comunidad creciente y documentación sólida.
Herramientas de DepuraciónOfrece Cypress Dashboard para ver y depurar resultados.Permite la depuración en el propio navegador, lo que facilita la identificación de problemas.
Grabación y ReproducciónNo se centra en grabación/reproducción, se enfoca en escritura de código.No se centra en grabación/reproducción, se enfoca en escritura de código.
Aplicaciones SoportadasPrincipalmente aplicaciones web de un solo dominio.Aplicaciones web de un solo dominio y aplicaciones nativas de escritorio y móviles (Playwright for Python y C#).
Automatización de NavegaciónAutomatiza la navegación y las interacciones del usuario.Automatiza la navegación y las interacciones del usuario, así como tareas de nivel de página como la captura de pantallas.
FlexibilidadAltamente flexible para personalizar pruebas.Altamente flexible, permite la personalización a nivel de red y más.
Herramientas de Pruebas ParalelasRequiere Cypress Dashboard o herramientas de terceros para pruebas paralelas.Soporte nativo para pruebas paralelas.
LicenciaCódigo abierto, licencia MIT.Código abierto, licencia Apache 2.0.


Pros de Playwright

  • Soporte de lenguajes (JS, Python, Java, C#)
  • Ejecución de pruebas en paralelo (también puede probar varios navegadores en paralelo)
  • Soporte multipestaña
  • Compatibilidad entre dominios
  • Soporte para iframes
  • Safari WebKit

Pros de Cypress:

  • Documentación
  • Apoyo de la comunidad (también muchos plugins)
  • Esperas estáticas
  • Control de redes y pruebas de API
  • Admite la nube de dispositivos reales y servidores remotos
  • La sintaxis es más fluida

Conclusión

La elección entre Cypress y Playwright depende de tus necesidades específicas, la tecnología de tu aplicación y tus preferencias personales. Ambas son herramientas sólidas para la automatización de pruebas de aplicaciones web y ofrecen distintas ventajas en diferentes áreas.
#30
Creando un nuevo proyecto con Cypress



Como en Cypress y en cualquier nuevo proyecto que vamos a empezar, primero es muy importante tener definido:

•    ¿Cuál es el nombre?

•    El autor

•    ¿Qué librerías se van a usar?

•    Versión entre otros...


Como segunda parte importante, se definen que comandos se van a usar, que modelos van a usar y cuantos van a ser.


Paso a Paso

1. md nameproject    --> crear carpeta del nuevo proyecto

2. cd nameproject    – >entrar a la carpeta

3. npm init    � cypress crea un archive json con toda la descripción del nuevo proyecto

4. Se crea un json---->
�    name
�    version
�    description: Pruebas automatizadas del sistema de sistema de...
�    test command:
�    git repository:
�    keywords: qa, automation, sistema ejemplo, etc.
�    author: Mr. Bones
                                                                                                Nota: se puede ver con type package.json

5. npm install cypress-- > cypress instala todos sus componentes

6. npm cypress run -- > se abre la parte del código de cypress

7. npx cypress open -- > se abre la parte gráfica de cypress
 se hace para configurar cypress y sus carpetas

-->e2e

-->fixtures

-->support


8. git init -- > se usa para crear un nuevo repositorio en github

9. git remote add origin No tienes permitido ver los links. Registrarse o Entrar a mi cuenta -- > a través de la terminal se agrega el repo a nuestro github

10. git add * -- > sube todos los archivos modificados al repositorio git

11. git commit -m "Commit inicial" -- >se pone un mensaje para acordarse o porque trabajamos con gente

12. git push origin master -- > se usa para subir toda la info al repo de git en la red

13. Se agrega en el json del proyecto la url del repositorio  -- >cuando quiera bajarlo otra persona se copia la direccion del git hub

14. git clone (Url del repo a clonar) -- > en el caso de que se quiera clonar el repo y bajarlo nuestro equipo

15. En GitHub, se crea un nuevo proyecto y se arma un tablero Kanban para llevar un control del trabajo del proyecto.


;D A practicar:

*Usando cualquier e-commerce, se deben realizar los siguientes Test Cases:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

*Ahora probemos con páginas de turnos, por ejemplo, Space (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta), es un entorno de prueba proporcionado por No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, ofrece la oportunidad de explorar y probar su plataforma para pruebas de software.
En este caso tienes que armar los casos de prueba y documentarlos (puedes ayudarte con la tarea anterior)

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
 


Gif a modo de Ejemplo:


#31
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

🖋 Hoy queria compartir un ejemplo de cypress que realicé usando chatgpt en 5 pasos:🖋


Paso a paso:

1 - Se escribe en el prompt un script de un ejemplo de happy path a testear.

2 - Se copia la Url.

3 - Se copia el codigo fuente de la página.

4 - Resultado casi perfecto para hacer copy paste en nuestro VS code.

5 - Por último correr cypress para ver nuestra prueba corriendo. 😎




#32
Dudas y pedidos generales / Re:Cypress
Septiembre 02, 2023, 09:37:57 AM
también podes ver en el foro o escribime y te ayudo
#33
⭐Cómo hacemos pruebas automatizadas en nuestra interfaz⭐

Y Arrancamos...

    Nuestra arquitectura front-end se basa en el enfoque BFF utilizando Node + React, que combina la velocidad de JavaScript y utiliza nuevas formas de representar sitios web, haciéndolos altamente dinámicos y receptivos para los usuarios. Para ello hacemos uso de GraphQL para solicitar datos al backend.
 
GraphQL se desarrolló para hacer frente a la necesidad de mayor flexibilidad y eficiencia que experimentan los desarrolladores al interactuar con las API REST, lo que hace que el flujo de trabajo sea mucho más eficiente.




La herramienta de prueba

Hace un tiempo decidimos empezar a utilizar Cypress, una herramienta que pretende superar a Selenium (o hacerte olvidarlo de inmediato), eliminando todos sus inconvenientes, como la configuración y la depuración. Si quieres profundizar en esta comparativa, aquí puedes leer más.



Cypress es una herramienta de prueba creada para la web moderna. Se pueden ver muchas similitudes entre ellos, pero los beneficios y limitaciones que enfrentará son bastante diferentes dependiendo de cuál utilice. Si lo que busca es facilidad de configuración y depuración, Cypress puede ser una buena opción.

Cypress es un operador de pruebas de código abierto que le permite escribir pruebas en código JavaScript. Puede consultar su repositorio y contribuir a su misión si así lo desea.

En mi caso, cambié de Selenium a Cypress por varias razones. El más importante es que parecía bastante fácil de configurar y trabajar con él, y eso nos permitió desde el control de calidad escalar los esfuerzos de prueba al difundir su uso entre los controles de calidad y los desarrolladores. Dado que utiliza JavaScript, nuestro equipo de desarrollo lo acogió con agrado y comenzó a usarlo casi sin fricciones o básicamente porque no me gusta Java.


La tecnología subyacente

Cypress está escrito en JavaScript y te permite escribir pruebas en JavaScript. Una cosa a tener en cuenta es que este framework está construido sobre Mocha, por lo que, si ya está acostumbrado a escribir scripts de prueba utilizando Mocha como marco de prueba, es probable que encuentre algunos viejos amigos aquí.

Cypress adopta de Mocha su sintaxis BDD que encaja muy bien tanto con la integración como con las pruebas unitarias. Otras tecnologías incluidas con Cypress son Chai, Chai-jQuery, Sinon y Sinon-Chai.


Ejecutando las pruebas

Al ejecutar la prueba en modo GUI, vemos lo siguiente:



Lo que hace Cypress es abrir un navegador, luego a la izquierda ves el 'registro en vivo' que refleja todo lo que hace el navegador durante la prueba, y a la derecha tienes la aplicación bajo prueba.

Vale la pena mencionar aquí que Cypress no es una herramienta externa que se comunica con el navegador a través de una API, sino que se ejecuta directamente en el navegador, y esto hace que esté tan cerca de la aplicación web bajo prueba que puedes hacer cosas que quieras.

Una de las características clave aquí es la capacidad de depuración. Cuando la prueba finaliza o falla, el estado no se restablece, lo que significa que puede desplazarse por el 'registro en vivo' para ver qué o dónde estaba haciendo Cypress en ese momento; se muestra una captura de pantalla para ese momento para cada acción. Incluso puede abrir la consola del navegador y obtener una descripción completa de los pasos que seleccione en el registro. Esta característica ha impulsado tanto todo el proceso de desarrollo de pruebas que ahora no podemos prescindir de ella.


Configurando el CI

Para nuestro sistema de CI utilizamos Brigade, que es una herramienta basada en eventos para ejecutar tareas automatizadas en la nube. Nuestros colegas del equipo de DevOps escribieron una serie de publicaciones sobre cómo funciona esto, por lo que, en caso de que esté interesado, puede profundizar aquí.

Como se comentó al principio del post, dividimos nuestra aplicación en diferentes BFF, lo que nos permite construirlas e implementarlas de forma independiente, lo que hace que el proceso de lanzamiento sea más rápido y fácil de escalar.

Todos estos BFF tienen al menos un repositorio de prueba e2e adjunto, que se activará como un evento diferente cada vez que se fusione una solicitud de extracción.




Este caso anterior ilustra la serie típica de eventos que ocurren al fusionar una nueva solicitud de extracción en nuestro entorno de prueba: canalización BFF. Primero viene el evento push (incluidas las pruebas unitarias  8) ), luego la implementación en el entorno de prueba y, finalmente, un post_deploy_hook activa las pruebas e2e configuradas. Tenemos Slack integrado en este bucle para notificarnos de cada paso y advertirnos en caso de que algo salga mal.

Las pruebas e2e se almacenan en un repositorio propio (que representan más de 15 repositorios). Enviamos todos los cambios en el código de prueba de e2e a esos repositorios para crear una nueva imagen de Docker que el BFF tomará y ejecutará cada vez que llegue el evento.

Centrándonos en el evento de prueba e2e, el comando que utilizamos para ejecutar las pruebas es:


$ cypress run --record --group 4x-electron --parallel --ci-build-id ${buildId}

Analizando brevemente los parámetros:

  • grabar: envía las grabaciones de video a Cypress Dashboard para realizar un seguimiento de las ejecuciones
  • grupo: Agrupa las pruebas grabadas juntas en una sola ejecución.
  • paralelo: Permite la paralelización de las pruebas.
  • buildId: necesario para definir una compilación o ejecución única

Panel de control de cypress

La última parte del viaje. Cypress Dashboard es un servicio que nos permite acceder a pruebas grabadas, siendo bastante útil cuando las ejecutamos en el CI. Nos brinda información sobre todas las ejecuciones de prueba activadas, incluidos registros, capturas de pantalla y videos.



Aunque podríamos prescindir del Panel, lo encontramos bastante útil y lo utilizamos ampliamente; tenemos un plan pago que permite que varios de nuestros ingenieros tengan acceso a él y trabajen de una manera más eficiente.

La gran ventaja aquí es que podemos conocer el estado de la aplicación con bastante rapidez y podemos abordar cualquier problema de inmediato cuando algo falla. Una vez que se revela la falla y se calcula el impacto potencial, solucionamos el problema y lo probamos nuevamente lo antes posible o posponemos la afirmación fallida hasta que se solucione, para no introducir ruido en el proyecto.
#34
Si estás buscando sitios web o aplicaciones en línea para realizar pruebas manuales, hay varios sitios que ofrecen entornos de pruebas donde puedes practicar y mejorar tus habilidades de pruebas exploratorias, usabilidad y más. Aquí tienes algunas opciones:

The Internet Chuck Norris Database: Esta es una página web humorística que te permite buscar datos inventados sobre Chuck Norris. Puede ser un lugar divertido para practicar pruebas de búsqueda y exploración.

Sitio web: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Herokuapp: Herokuapp ofrece una variedad de aplicaciones de muestra para que los testers practiquen sus habilidades en un entorno real. Puedes explorar y probar diferentes aplicaciones para encontrar errores y problemas.

Sitio web: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



The Internet Archive: El Internet Archive es un recurso que te permite explorar y navegar por versiones antiguas de sitios web reales. Puedes usarlo para practicar pruebas en sitios web reales, aunque no todos los enlaces pueden funcionar perfectamente en todas las versiones.

Sitio web:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



The Internet Arcade: Este proyecto del Internet Archive te permite jugar a una amplia variedad de videojuegos clásicos en tu navegador. Puedes probar y explorar diferentes juegos para verificar su funcionalidad.

Sitio web:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



TodoMVC: TodoMVC es un sitio que muestra diferentes implementaciones del mismo proyecto de lista de tareas en varios frameworks JavaScript. Puedes probar la funcionalidad y la usabilidad de estas aplicaciones web.

Sitio web: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



The Guardian: El sitio web de noticias The Guardian ofrece una amplia variedad de artículos y contenido en línea. Puedes explorar y probar diferentes partes del sitio para verificar la navegación y la presentación de contenido.

Sitio web:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Wikipedia: Wikipedia es una enciclopedia en línea colaborativa que contiene una gran cantidad de información en diferentes temas. Puedes explorar y navegar por artículos para practicar pruebas de búsqueda y usabilidad.

Sitio web:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Reddit: Reddit es una plataforma de redes sociales basada en comunidades y foros. Puedes explorar diferentes subreddits para practicar pruebas de interacción, navegación y comentarios.

Sitio web:No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Estos sitios te ofrecen diversas oportunidades para practicar pruebas manuales en diferentes contextos y tipos de aplicaciones. Recuerda que la práctica constante y la exploración detallada son clave para desarrollar habilidades sólidas de pruebas exploratorias.
#35
Dudas y pedidos generales / Re:Sub foro
Agosto 27, 2023, 09:15:31 AM
se entendió perfecto, cómo vi que no hay información sobre Cypress, y tengo mucha info para aportar al foro, pensé en iniciar un nuevo subforo. voy a comunicarme con el propietario para avanzar con el tema. Muchas Gracias
#36
Creando una Nueva especificación

Suponiendo que haya instalado Cypress exitosamente y haya abierto Cypress , ahora es el momento de agregar su primera prueba. Haremos esto con el botón Crear new empty spec.



Al hacer clic en él, debería ver un cuadro de diálogo donde puede ingresar el nombre de su nueva especificación. Simplemente acepte el nombre predeterminado por ahora.



La especificación recién generada se muestra en un cuadro de diálogo de confirmación. Simplemente continúa y ciérralo con el botón ✕.



Una vez que hayamos creado ese archivo, debería verlo aparecer inmediatamente en la lista de especificaciones de un extremo a otro. Cypress monitorea sus archivos de especificaciones para detectar cualquier cambio y los muestra automáticamente.



Aunque todavía no hemos escrito ningún código, está bien, hagamos click en su nueva especificación y veamos cómo Cypress la inicia.



Escribe tu primera Prueba
Ahora es el momento de escribir tu primera prueba:

1 Escribe tu primer examen aprobado.
2 Actualízalo para que falle.
3 Mira la recarga de Cypress en tiempo real.

Abra el archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta en su IDE (ej: Visual Studio Code) y reemplace el contenido de su especificación con el siguiente código.


describe('My First Test', () => {
  it('Does not do much!', () => {
    expect(true).to.equal(true)
  })
})

Una vez que guarde este cambio, debería ver que el navegador se recarga.

Aunque no hace nada útil, ¡esta es nuestra primera prueba que aprobamos! ✅

En el Registro de comandos verá que Cypress muestra la suite, la prueba y su primera afirmación (que debería pasar en verde).




Observe que Cypress muestra un mensaje indicando que esta es la página predeterminada en el lado derecho . Cypress supone que querrás salir y visitar una URL en Internet, pero también puede funcionar bien sin eso.

Ahora escribamos nuestra primera prueba fallida.


describe('My First Test', () => {
  it('Does not do much!', () => {
    expect(true).to.equal(false)
  })
})

Que pasó???

Una vez que guarde nuevamente, verá que Cypress muestra la prueba fallida en rojo ya que trueno es igual a false.

Cypress también muestra el seguimiento de la pila y el marco de código donde falló la aserción (cuando esté disponible). Puede hacer clic en el enlace del archivo azul para abrir el archivo donde ocurrió el error en su abridor de archivos preferido . Para leer más sobre la visualización del error, lea sobre Errores de depuración




si te gustó, aca abajo te dejo un link para que puedas hacer un ejemplo real:

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


#37
Escribe una prueba Real en Cypress



Una prueba sólida generalmente cubre 3 fases:

  • Configure el estado de la aplicación.
  • Toma una acción.
  • Haga una afirmación sobre el estado de la aplicación resultante.

También puede ver esto redactado como "Dado, cuándo, entonces" o "Organizar, actuar, afirmar". Pero la idea es: primero colocas la aplicación en un estado específico, luego realizas alguna acción en la aplicación que hace que cambie y finalmente verificas el estado resultante de la aplicación.

Hoy, analizaremos estos pasos de forma restringida y los asignaremos claramente a los comandos de Cypress:

  • Visita una página web.
  • Consulta por un elemento.
  • Interactuar con ese elemento.
  • Afirmar sobre el contenido de la página.


Paso 1: visita una Página

Primero, visitemos una página web. Visitaremos nuestra aplicación Kitchen Sink en este ejemplo para que pueda probar Cypress sin tener que preocuparse por encontrar una página para probar.

Podemos pasar la URL que queremos visitar cy.visit(). Reemplacemos nuestra prueba anterior con la siguiente que realmente visita una página:


describe('Real Test', () => {
  it('Visits the Google', () => {
    cy.visit('No tienes permitido ver los links. Registrarse o Entrar a mi cuenta')
  })
})


Guarde el archivo y vuelva a cambiar a Cypress Test Runner. Es posible que notes algunas cosas:

    • El Registro de comandos ahora muestra la nueva VISITacción.
    • La aplicación Kitchen Sink se ha cargado en el panel Vista previa de la aplicación .
    • La prueba es verde, aunque no hicimos ninguna afirmación.
    • Muestra VISITun estado pendiente azul hasta que la página termine de cargarse.
Si esta solicitud hubiera regresado con un código sin estado como 404 o 500, o si hubiera un error de JavaScript en el código de la aplicación, la prueba habría fallado.Paso 2: Consulta de un elementoAhora que tenemos una página cargada, debemos realizar alguna acción al respecto. ¿Por qué no hacemos click en un enlace de la página? Suena bastante fácil, busquemos uno que nos guste... ¿qué tal Gmail?Para encontrar este elemento por su contenido, usaremos cy.contains() .Agreguémoslo a nuestra prueba y veamos qué sucede:describe('Real Test', () => {  it('finds the content "Gmail"', () => {    cy.visit('No tienes permitido ver los links. Registrarse o Entrar a mi cuenta')    cy.contains('Gmail')      })}) Nuestra prueba ahora debería aparecer CONTAINS en el Registro de comandos y aún estar en verde.Incluso sin agregar una afirmación, ¡sabemos que todo está bien! Esto se debe a que muchos de los comandos de Cypress están diseñados para fallar si no encuentran lo que esperan encontrar. Esto se conoce como aserción predeterminada .Para verificar esto, reemplácelo typecon algo que no esté en la página, como Red. Notarás que la prueba se pone roja, ¡pero solo después de unos 4 segundos!¿Puedes ver lo que Cypress está haciendo debajo del capó? Automáticamente espera y vuelve a intentarlo porque espera que el contenido finalmente se encuentre en el DOM. ¡No falla inmediatamente!cy.contains(): Este método busca un elemento que contiene el texto especificado. En el caso del ejemplo, se busca un enlace que contiene el texto "Gmail" y luego se realiza un clic en él. Esto es útil para seleccionar elementos basados en su contenido de texto en lugar de utilizar selectores CSS o XPath.Paso 3: Haz click en un elementoOk, ahora queremos hacer click en el enlace que encontramos. ¿Como hacemos eso? Agregue un comando .click() al final del comando anterior, así:describe('Real Test', () => {  it('clicks the link "Imágenes"', () => {    cy.visit('No tienes permitido ver los links. Registrarse o Entrar a mi cuenta')    cy.contains('Imágenes').click();      })}) ¡Casi puedes leerlo como una pequeña historia! Cypress llama a esto "encadenamiento" y encadenamos comandos para crear pruebas que realmente expresen lo que hace la aplicación de forma declarativa.También tenga en cuenta que el panel Vista previa de la aplicación se actualizó aún más después del click, siguiendo el enlace y mostrando la página de destino:¡Ahora podemos afirmar algo sobre esta nueva página!Paso 4: Has una afirmaciónHagamos una afirmación sobre algo en la nueva página en la que hicimos click. Quizás nos gustaría asegurarnos de que la nueva URL sea la URL esperada. Podemos hacerlo buscando la URL y encadenándole una afirmación con .should() .Así es como se ve:describe('Real Test', () => {  it('clicking "Imágenes" navigates to a new url', () => {    cy.visit('No tienes permitido ver los links. Registrarse o Entrar a mi cuenta')    cy.contains('Imágenes').click()    // Should be on a new URL which    // includes '/imghp?hl=es-419&ogbl'    cy.url().should('include', '/imghp?hl=es-419&ogbl')  })}) Pronto voy a subir más ejemplos para practicar, saludos.[/list]
#38
Dudas y pedidos generales / [SOLUCIONADO] Sub foro
Agosto 25, 2023, 11:48:58 PM
Como puedo crer un Sub foro dentro de un Tema principal 8)
#39
QA (Quality Assurance) / 01 - Comenzando con Cypress
Agosto 25, 2023, 11:43:29 PM
cypress



Qué es Cypress?

💡 Es un framework para la automatizción de pruebas y test
💡 No utiliza Selenium
💡 Viene con todas las herramientas que necesitamos out of the box para e2e (end to end o de extremo a extremo)
💡 Utiliza JS (Java Script)


Por qué usar Cypress?

✏ Fácil de instalar
✏ Curva de aprendizaje baja.
✏ Es fácil categorizar pruebas.
✏ En muchas ocasiones es mas rápido que las soluciones basadas en Selenium
✏ Tiene una UI para administrar pruebas
✏ Waits automáticos


Beneficios de Cypress ❤️

🗝 Configurar pruebas
🗝 Escribir pruebas
🗝 Ejecutar pruebas
🗝 Pruebas de depuración


Permite escribir pruebas como:

🆗 Pruebas de un extremo a otro
🆗 Pruebas de componentes
🆗 Pruebas de integración
🆗 Pruebas unitarias

#40
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

🔍 ¿Qué es el Test Exploratorio? 🔍

A diferencia de las pruebas estructuradas, aquí los testers se convierten en exploradores digitales, interactuando con la aplicación como usuarios finales. No se trata solo de encontrar defectos, sino de destapar sorpresas y escenarios no previstos.



En otras palabras sirve para cuando somos nuevos en un proyecto y no hay documentación, de esta manera tambien conocemos el negocio.

🔍 ¿Cómo se Hace? 🔍

💬 Se planifica y se organizan las pantallas a testear
💬 Tiempo de ejecución
💬 Se documenta grabando la pantalla


🔍 ¿Cuándo se Hace? 🔍

💬 Cuándo terminamos el tiempo
💬 Cuándo terminamos de testear las pantallas



🚀 Beneficios que marcan la diferencia 🚀

✅ Detección de problemas inesperados: El Test Exploratorio es como una lupa que revela comportamientos no planificados y problemas sutiles que podrían pasar desapercibidos en las pruebas tradicionales.

✅ Adaptabilidad: Esta técnica se ajusta a la naturaleza cambiante del desarrollo y permite la evaluación continua del software a medida que evoluciona.

✅ Experiencia del usuario en primer plano: Al emular las acciones de los usuarios reales, se garantiza una perspectiva más auténtica de la usabilidad y la experiencia del usuario.