/starter-wdio

Creamos en vivo un starter project para UI Web/Mobile Test Automation basado en WebdriverIO - Cucumber - TypeScript - Allure Report

Primary LanguageTypeScript

Twitch Discord

WebdriverIO

Starter project creado en vivo en stream de Twitch basado en WebDriverIO, Appium, Cucumber, TypeScript, Allure Report, Node.js con soporte multi-browser mediante Docker y Selenium Grid

Requerimientos generales

  • Instalar Node.js
  • Instalar algún cliente git como por ejemplo git bash
  • Tener instalado Chrome 100 (No Chromium)

Requerimientos mobile

Descargar e instalar

  • Java Development Kit (JDK)

    • Asegurarse de tener configurada la variable de entorno JAVA_HOME con la ruta de la JDK respectiva.
  • Appium Desktop.

  • Android Studio y dentro de la aplicación instalar.

    • SDK Platform: Android 10 o la versión necesaria.
    • SDK tools:
      • Android SDK Build Tools.
      • Andorid SDK Command Line Tools.
      • Android Emulator.
      • Android SDK Platform-tools.
      • Intel x86 Emulator accelerator.
    • Configurar al menos un emulador desde Android Virtual Device Manager.
    • Asegurarse de agregar las siguientes variables de entorno:
      • ANDROID_HOME: Agregar el directorio donde se aloja la SDK de Android, por ejemplo: C:\Users\USERNAME\AppData\Local\Android\Sdk.
      • Luego respetando el orden agregar estas variables de entorno:
        • %ANDROID_HOME%\emulator
        • %ANDROID_HOME%\platform-tools
        • %ANDROID_HOME%\tools
        • %ANDROID_HOME%\tools\bin
    • Iniciando el emulador desde la línea de comandos:
      • Listar los emuladores instalados:
        • emulator -list-avds
      • Iniciar el emulador:
        • emulator @nombre_emulador
      • Como alternativa a algún error se puede iniciar con el siguiente comando: %ANDROID_HOME%\emulator\emulator.exe -avd <nombre_emulador>
  • Appium Doctor: Para validar que contamos con todo lo necesario para realizar nuestros Test de mobile debemos instalar y ejecutar.

    • npm install -g appium-doctor
      • Esto instalará el utilitario que nos permitirá validar que todo esté correctamente configurado.
    • appium-doctor --android
      • Si hemos realizado correctamente todos los pasos de arriba con este comando se mostrará un mensaje de éxito ya algunos warning.
      • En caso de algún error bloqueante, el mismo se mostrará en pantalla, se deberá corregir y volver a ejecutar hasta que esté todo ok.
  • APK a probar.

Requerimientos docker

Descargar e instalar

Para levantar una imagen de Selenium Grid con múltiples browsers:

Desde una terminal ejecutar:

# Network
docker network create grid
# Hub
docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.1.3-20220405
# Relacionamos los nodos con el hub
# Nodo con Chrome
docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \
    --shm-size="2g" \
    -e SE_EVENT_BUS_PUBLISH_PORT=4442 \
    -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \
    -e SE_NODE_MAX_SESSIONS=2 \
    -e SE_NODE_OVERRIDE_MAX_SESSIONS=true \
    selenium/node-chrome:100.0-20220405
# Nodo con Edge
docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \
    --shm-size="2g" \
    -e SE_EVENT_BUS_PUBLISH_PORT=4442 \
    -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \
    -e SE_NODE_MAX_SESSIONS=2 \
    -e SE_NODE_OVERRIDE_MAX_SESSIONS=true \
    selenium/node-edge:100.0-20220405
# Nodo con Firefox
docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \
    --shm-size="2g" \
    -e SE_EVENT_BUS_PUBLISH_PORT=4442 \
    -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \
    -e SE_NODE_MAX_SESSIONS=2 \
    -e SE_NODE_OVERRIDE_MAX_SESSIONS=true \
    selenium/node-firefox:99.0-20220405

Instalación del framework de pruebas

Clonar el repositorio:

git clone https://github.com/charlyautomatiza/starter-wdio.git

Instalar las dependencias.

npm install

Para la ejecución de los test de web

    npm run wdio-web

Para la ejecución de los test de web usando docker

    npm run wdio-web-docker

Para la ejecución de los test de mobile

    npm run wdio-mobile

Para ejecutar el asistente de configuración (opcional para usar otros browsers o servicios):

    npm init wdio .

Para crear y abrir el reporte unificado de los resultados de los test

    npm run open-report