An open API service indexing awesome lists of open source software.

https://github.com/alejandroblanco2001/ghoste2e

Repositorio con las pruebas de E2E para la aplicacion bajo pruebas Ghost, para la clase de Pruebas Automatizadas de la maestria de Ingenieria de Software de la Universsidad de los Andres
https://github.com/alejandroblanco2001/ghoste2e

Last synced: about 2 months ago
JSON representation

Repositorio con las pruebas de E2E para la aplicacion bajo pruebas Ghost, para la clase de Pruebas Automatizadas de la maestria de Ingenieria de Software de la Universsidad de los Andres

Awesome Lists containing this project

README

        

# Pruebas Automatizadas

**Integrantes:**
1. Isaac Alejandro Blanco Amador [email protected]
2. Raúl José López Grau [email protected]
3. Neider Fajardo Hurtado [email protected]
4. Juan Camilo Mora Garcia [email protected]

## Información General
Para la elaboración de las pruebas automatizadas tipo e2e (end-to-end), se hizo uso de las herramientas [Kraken](https://thesoftwaredesignlab.github.io/Kraken/) y la herramienta [Playwright](https://playwright.dev/).

A continuación se dará una una explicación de la estructura del proyecto y de la forma en la que se deben ejecutar los escenarios para cada herramienta, es importante comentar que se realizó la configuración de un pipeline que ejecutá los escenarios para ambas herramientas, con el fin de garantizar que todos los nuevos escenarios que se quieran agregar se ejecuten correctamente.

Los archivos de playwright se encuentran en la carpeta [e2e-playwright/](https://github.com/AlejandroBlanco2001/GhostE2E/tree/main/e2e-playwright).

Los features de kraken se encuentran en [features/](https://github.com/AlejandroBlanco2001/GhostE2E/tree/main/features).

> Ambas herramientas están corriendo en **CI / Github Actions** en este repositorio. Para ver los últimos resultados es posible verlos en el apartado [Actions](https://github.com/AlejandroBlanco2001/GhostE2E/actions) de este repositorio.

Workflows implementados:
1. [Playwright](https://github.com/AlejandroBlanco2001/GhostE2E/blob/main/.github/workflows/playwright.yml)
2. [Kraken](https://github.com/AlejandroBlanco2001/GhostE2E/blob/main/.github/workflows/kraken.yml)

Estos corren en cada commit a master o en cada Pull request a master.

# E2E (Semana 5)

## Playwright E2E

### Instrucciones

Estas son las instrucciones para correr las pruebas en una máquina Linux

#### 1. Instalar dependencias

```bash
npm install
```

#### 2. Instalar dependencias del sistema

1. Docker
2. Chromium

#### 3. Correr las pruebas

Solo es necesario ejecutar el siguiente comando:

```bash
npm run test-pw-regular
```

Este comando se encarga de levantar una instancia de Ghost usando Docker y correr las pruebas cada vez que se corra este comando.

Si se tienen problemas para correr las pruebas se puede consultar la manera como se hace en el [CI/Actions](https://github.com/AlejandroBlanco2001/GhostE2E/blob/main/.github/workflows/playwright.yml)

Para poder ejecutar las pruebas en Windows, haga uso del siguiente comando:

```bash
npm run test-pw-regular-windows
```

## Kraken E2E

### Instrucciones

Estas son las instrucciones para correr las pruebas en una máquina Linux

#### 1. Instalar dependencias

```bash
npm install
```

#### 2. Instalar dependencias del sistema

1. [Todos los requisitos de kraken](https://github.com/TheSoftwareDesignLab/Kraken#-installation) (adb, cucumber, etc)
2. Docker
3. Chromium

#### 3. Correr las pruebas

Al igual que con playwright, solo es necesario ejecutar el siguiente comando:

```bash
npm run kraken
```

Este comando también se encargará de levantar una instancia de Ghost usando docker y correr todas las pruebas. Cada vez que se corra el comando será un cold start de la aplicación.

#### En caso de error
Ya que la ejecución de las pruebas de kraken también depende de otras configuraciones tanto del sistema operativo, como del dispositivo en el que se estén ejecutando las pruebas, puede que encuentre algunos fallos en la ejecución de los escenarios.

Para esto, se propone una forma alternativa de ejecutar los escenarios localmente, para esto se deben seguir los siguientes pasos.

- Dejar solamente el feature que se quiere probar y comentar los demás renombrando los archivos de la siguiente forma: ```nombre_archivo.feature.commented```
- Ejecutar el comando para compilar los archivos de kraken del escenario que se quiere ejecutar:
```bash
npm run kraken-compile
```
- Ejecutar el comando de kraken para correr la prueba:
```bash
.\node_modules\kraken-node\bin\kraken-node run
```
En Widnows, es necesario hacerlo de la siguiente forma:
```bash
node .\node_modules\kraken-node\bin\kraken-node run
```

Si se tienen problemas para correr las pruebas se puede consultar la manera como se hace en el [CI/Actions](https://github.com/AlejandroBlanco2001/GhostE2E/blob/main/.github/workflows/kraken.yml)

# VRT (Semana 6)

## Playwright VRT

Siga las instrucciones descritas para correr [Playwright E2E](#playwright-e2e) (**ignorando el paso 3**), y luego:

### 1. Ejecutar las pruebas y generar el reporte:

Se elaboró un comando que ejecutará todas las pruebas construidas con Playwright, tanto para la versión **4.5** como para la vestión **5.96.0** de **Ghost** y una vez estas se hayan ejecutado, se generará el reporte a partir de las imágenes que fueron tomadas en cada prueba.
Para lo anterior, ejecute el siguiente comando:

```bash
npm run execute-vrt-playwright-windows
```

> **Nota:** Como se puede ver en el comando, esta construido para ser ejecutado en una terminal powershell de windows.

### Revisar el reporte
El reporte se construye en la carpeta llamada [results](https://github.com/AlejandroBlanco2001/GhostE2E/tree/main/rvt-playwright/results), ahí encontrará las imágenes que resultaron de la comparación entre las dos versiones de **Ghost** y una archivo html que contiene el informe con la comparación entre las imágenes.

> Nota: En caso de que el comando anterior falle, se sugiere realizar el proceso como se indica en la siguiente sección.

### Alternativa para ejecutar las pruebas

El script anterior, realiza los siguientes pasos, en caso de que falle, se puede intentar generar de manera manual

Ejecutar las pruebas para ambas versiones de Ghost:
```bash
CI=1 GHOST_VRT=1 GHOST_VERSION=5.96.0 npx playwright test
CI=1 GHOST_VRT=1 GHOST_VERSION=4.5 npx playwright test
```
Una vez se ejecuten las pruebas y se generen las imágenes, se puede ejecutar el siguiente comando para generar el reporte:
```bash
cd rvt-playwright/ && npx tsc && node vrtfile.js
```

Esto generará el reporte en la misma ubicación que se comentó anteriormente.

## Kraken VRT

Siga las instrucciones descritas para correr [Kraken E2E](#kraken-e2e) (**ignorando el paso 3**), y luego:

#### 1. Correr el comando

```bash
npm run execute-vrt-kraken
```

Este comando se encargará de correr Kraken en ambas versiones y realizar el reporte.

#### 2. Acerca del reporte

El reporte se generará en la carpeta: **VRTReport/comparison_report.html**

El reporte será generado con ResembleJS y su lógica se encuentra en el script [vrtRunner.ts](https://github.com/AlejandroBlanco2001/GhostE2E/blob/main/shared/vrtRunner.ts)

## Data Validation Testing

Para conocer el funcionamiento de las pruebas lo invitamos a consultar [la wiki](https://github.com/AlejandroBlanco2001/GhostE2E/wiki/Entrega-Semana-7-%E2%80%90-Data-Validation)

## Playwright DV

1. Siga las instrucciones descritas para correr [Playwright E2E](#playwright-e2e) (**ignorando el paso 3**), y luego:

```bash
npm run data-validation
```

Este comando correrá 98 pruebas de data validation en **Playwright**

2. Por último correremos las pruebas E2E realizadas en la semana 5. Las cuales fueron ajustadas para que se ejecuten usando un pool de datos random (faker).
3. Para esto, ejecute el siguiente comando:

```bash
npm run test-pw-regular
```

Esto nos dará un total de 118 pruebas en **Playwright**.

## Kraken DV

1. Siga las instrucciones descritas para correr [Kraken E2E](#kraken-e2e)

Esto correrá las 20 pruebas de Kraken que también fueron ajustadas para utilizar un pool de datos random (faker).

## Conclusión

Al terminar la ejecución de las pruebas, se puede observar que se ejecutaron un total de 138 pruebas en **Playwright** y 20 pruebas en **Kraken**.

Todas estas pruebas están implementadas también en el pipeline de [Github Actions](https://github.com/AlejandroBlanco2001/GhostE2E/actions). A continuación encontramos los workflows implementados:

1. [Playwright](https://github.com/AlejandroBlanco2001/GhostE2E/blob/main/.github/workflows/playwright.yml) - Incluye las 20 pruebas E2E + 98 pruebas DV
2. [Kraken](https://github.com/AlejandroBlanco2001/GhostE2E/blob/main/.github/workflows/kraken.yml) - Incluye las 20 pruebas E2E

Toda la información de las pruebas recomendamos revisarla en [la wiki del repositorio](https://github.com/AlejandroBlanco2001/GhostE2E/wiki/Entrega-Semana-7-%E2%80%90-Data-Validation).