Home - dcastrog2uniandes/Ghost GitHub Wiki

Welcome to the Ghost wiki!

Integrantes

Nombre Correo
David Castro González [email protected]
Nelson Barreto Pastrana [email protected]
Oscar U. Tobar Rios [email protected]
Daniel Andres Huertas Mercado [email protected]

Video entrega final

Grupo 4

Documento

Ver documento Estrategia de pruebas.pdf

Presentación

ver PowerPoint EstrategiaPruebas.pptx

Estrategia de pruebas

  • Aplicación bajo pruebas: Ghost
  • Versiones: 4.35 y 4.44

Prerrequisitos

Clonar este repositorio con el siguiente comando

git clone https://github.com/dcastrog2uniandes/Ghost.git 

Los comandos que se deben ingresar en los pasos posteriores (desde la consola de comandos) se deben ejecutar en la carpeta donde clonó su repositorio dentro de la subcarpeta Ghost

Instalación de Docker

En primer lugar se deben instalar las dos versiones de Ghost. Una opción es instalar en su equipo local las dos images Docker, una por cada versión. Para instalar Docker, descargue el ejecutable desde la página oficial y siga las instrucciones de acuerdo a su sistema operativo:

Windows: https://docs.docker.com/desktop/windows/install/
Linux: https://docs.docker.com/desktop/linux/install/
Mac: https://docs.docker.com/desktop/mac/install/

Instalar Ghost usando imagenes Docker

  1. Una vez instalado Docker Desktop, cree una carpeta e incluya un archivo llamado docker-compose.yaml con el siguiente código:
version: "3.9"
services:
  ghostv43:
    image: ghost:4.35
    volumes:
      - ./g3:/var/lib/ghost/content
    restart: always  
    ports:
    - 3001:2368
    expose:
      - 3001
      
  ghostv44:
    image: ghost:4.44.0
    volumes:
      - ./g4:/var/lib/ghost/content
    restart: always  
    ports:
    - 3002:2368
    expose:
      - 3002

y ejecute el siguiente comando para desplegar el contenedor con ambas instancias:

docker-compose up
  1. Verifique en Docker Desktop que se haya creado un contenedor con las dos instancias de Ghost y que estén corriendo en puertos diferentes.

image

  1. Compruebe en su navegador la correcta ejecución de ambas instancias:
    Versión 4.44 = http://localhost:3002/ghost/
    Versión 4.35 = http://localhost:3001/ghost/

Configuración inicial de Ghost

  1. La primera vez que corre Ghost de manera local, debe crear el usuario administrador. Siga las instrucciones y por favor registre los siguientes datos:
    email: [email protected]
    contraseña: Mari123456
  2. Inicie sesión y compruebe que puede acceder al dashboard de administración, en ambas instancias de Ghost.

Instalar Node

Para poder instalar las dos API's de automatización que se serán empleadas para ejecutar las pruebas, es necesario que tenga instalado el manejador de dependencias Node JS. Para esto, vaya a la página oficial, descárguelo y siga las instrucciones:
node: https://nodejs.org/en/

Instalar Kraken

Kraken es una herramienta de código abierto para realizar pruebas automáticas del tipo E2E con aplicaciones móviles para Android y aplicaciones WEB

  1. Para instalar la herramienta, abra una terminal, ubíquese en la carpeta Kraken e ingrese el siguiente comando:
npm install kraken-node

  1. Una vez tenga en su espacio local el código de este repositorio, desde la carpeta kraken ejecute el siguiente comando para instalar las dependencias necesarias:
npm install

Instalar Cypress

Dado que la instalación de Cypress tiene un tamaño significativo, se recomienda que, por lo general, quien vaya a utilizar un proyecto de Cypress cuente con las herramientas de forma global en su máquina.

  1. Ejecute el siguiente comando para instalar Cypress de manera global:
npm install -g cypress

Ejecutar Pruebas

Manuales

Para estas pruebas no se requiere la ejecución de algún software, de acuerdo a la estrategia de pruebas se definieron 20 escenarios en los cuales se evaluaron las principales funcionalidades de Ghost lo que dio por resultado:

Pruebas de reconocimiento Monkeys

Para ejecutar las pruebas exploratorias utilizando pruebas aleatorias automatizadas con Monkeys-Cypress ejecute los siguientes pasos:

  • Descargue el repositorio de esta pagina ( https://github.com/dcastrog2uniandes/Ghost.git )
  • Desde la consola de comandos ubíquese en la carpeta del repositorio dentro de la carpeta Monkeys/monkey-cypress
  • Ejecutar los siguientes comandos:

Instalar dependecias:

 npm install

Ejecutar prueba 1

 cypress run -C monkey-config.json

Ejecutar prueba 3

 cypress run -C smart-monkey-config.json

Una vez finalice la prueba en la carpeta Monkeys/monkey-cypress/results quedará el reporte y el video del Monkey

Pruebas de reconocimiento RiPuppet

Para ejecutar las pruebas exploratorias utilizando RIPuppet siga los pasos:

  • Desde la consola de comandos ubíquese en la carpeta del repositorio dentro de la carpeta Rippers/RIPuppetCoursera/
  • Ejecutar los siguientes comandos:

Instalar dependecias:

 npm install

Ejecutar prueba

 node index.js

Ver reporte

Para poder ver el contenido del reporte en su navegador web, debe servir los archivos en un puerto. Esto quiere decir, crear un servidor sencillo que aloje los archivos en su máquina local. Este proceso es bastante sencillo y para lograrlo. En una terminal, ubíquese en el directorio Rippers/RIPuppetCoursera/results. Desde allí, ejecute el siguiente comando para instalar la librería http-server de Node.js:

npm install -g http-server

Ahora que cuenta con esta herramienta en su computadora, ejecute el siguiente comando para crear un servidor local con los archivos del directorio actual:

http-server

Desde su terminal podrá ver un resultado similar al siguiente, donde le muestra las URL donde puede ingresar a ver los resultados :

Available on:
  http://172.31.48.1:8080
  http://192.168.1.11:8080
  http://127.0.0.1:8080
Hit CTRL-C to stop the server

Artefactos

Una vez finalice la prueba en la carpeta Rippers/RIPuppetCoursera/results. Haga clic en el archivo report.html y podrá ver el reporte. Este contiene tres secciones: las páginas web visitadas, el detalle de un estado y los errores del estado seleccionado. La carpeta **Rippers/RIPuppetCoursera/reports **tiene la siguientes estructura:

2022-05-27T01.37.03.223Z/
   chromium/
      screenshots/
         0.png
         1.png
         n.png
      tempcrhomium/
      report.html
      graph.json
       
   webkit/
      screenshots/
         0.png
         1.png
         n.png
      report.html
      graph.json

El nombre de la carpeta está dada por la fecha y la hora de cuando se ejecuta la prueba.

A continuación se muestra una imagen de las generadas que representa el grafo con los nodos visitados en la prueba

image

Pruebas E2E

Kraken

  1. En la carpeta **Kraken ** encontrará los directorios grupo_features_1, grupo_features_2, grupo_features_3 y grupo_features_4 para los cuales debe hacer lo siguiente.
  2. Tomar el primer directorio que aparezca (EJ: Kraken/grupo_features_1 ) **renombrarlo **por Kraken/features
  3. Ingrese al directorio Kraken/features/ejecutar (están los features con los que se validara las funcionalidades más importantes de Ghost), mover el primer archivo al directorio Kraken/features
  4. Ingrese al shell bash y en la carpeta Kraken ejecutar el siguiente comando
./node_modules/kraken-node/bin/kraken-node run
  1. Al finalizar la prueba borre el archivo que esta en Kraken/features
  2. Ejecute la siguiente prueba como se describe en los pasos 3 y 4. Hasta que no tenga mas archivos. Cuando la carpeta del grupo de features este vacía Bórrela.
  3. Una vez se ha terminado de ejecutar todas las pruebas de este grupo, borre la carpeta Kraken/features y repetir los pasos 2 al 5 con los otros 3 grupos de features.

Nota:

  1. En caso de presentar errores, puede consultar la guía de instalación oficial de Kraken en el siguiente enlace:
    https://thesoftwaredesignlab.github.io/AutTesingCodelabs/w5/krakenWeb/index.html

  2. Si llega a presentar un error relacionado con adb, por favor haga la instalación como se sugiere en el siguiente vídeo:
    https://www.youtube.com/watch?v=tYY7FTV31vM

Cypress

  1. Para ejecutar las pruebas tiene las siguientes dos opciones:
    2.1. Modo headless: ingrese a la carpeta Ghost/Cypress/ y ejecute el siguiente comando:
    cypress run --headless
    
    2.2. Modo aplicación: ejecute el siguiente comando desde cualquier ubicación:
    cypress open
    
    Seleccione la carpeta Ghost/Cypress/cypress/integration/ y vera que se listan todos los escenarios definidos para las pruebas, seleccione el que desea ejecutar

Generar reportes VRT usando Resemble JS

Resemble.js es una herramienta que permite realizar análisis visual sobre imágenes haciendo uso de JavaScript y HTML. Esta se distribuye como una librería de Node.js, permite extraer información sobre una imagen y también realizar comparaciones entre imágenes.

Tenga en cuenta que antes de ejecutar estas pruebas, primero debe haber ejecutado las pruebas en Kraken y Cypress, debido a que allí se generar los respectivos screenshots que serán utilizados por Resemble para la regresión visual. Los screenshots se encuentran en la siguiente ruta y tienen la siguiente estructura:

Kraken/
  reports/
    scenario{{numero_escenario}}/
      V4.35/
        -1.png
        -2.png
        - ....
        -n.png
      V4.44
        -1.png
        -2.png
        - ....
        -n.png

Donde {{numero_escenario}} es el numero del escenario. Cada escenario contiene dos carpetas, una para cada versión y estas contienen los respectivos screenshots.

Ejecución de las pruebas de Regresión Visual

Ubiquese en la carpeta RTV_ResembleJS y ejecute el siguiente comando:

npm install

Finalizada la instalación de las dependencias necesarias para ejecutar ResembleJS, ejecutar en la carpeta RTV_ResembleJS el siguiente comando

node index.js

Esto generará el reporte y la comparación de las respectivas imágenes para todos los escenarios definidos. Note que en la carpeta RTV_ResembleJS/results se encuentran las imágenes resultantes de la comparación y el reporte generado por cada escenario, el cual tiene la siguiente estructura:

RTV_ResembleJS/
  results/
    scenario{{numero_escenario}}/
      compare/
        -compare-1.png
        -compare-2.png
        - ....
        -compare-n.png
        -index.txt
        -report.html

En donde {{numero_escenario}} es el número del escenario. Cada carpeta escenario{{numero_escenario}} contiene una carpeta compare que aloja las imágenes comparadas y reporte html.

Pruebas con Generación de Datos Aleatorios

Las pruebas se realizaron para la versión de Ghost 4.44. Si aún no ha instalado Ghost, por favor siga las instrucciones que se detallan en la sección Instalaciones necesarias

La explicación para correr las pruebas se encuentran en la Wiki: Data Validation Testing

Reporte de Issues

Se evidenciaron varios issues al ejecutar las pruebas de regresión y para ver sus detalles vaya a la sección issues

⚠️ **GitHub.com Fallback** ⚠️