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
- Instalar Node.js
- Instalar algún cliente git como por ejemplo git bash
- Tener instalado Chrome 100 (No Chromium)
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>
- Listar los emuladores instalados:
-
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.
- npm install -g appium-doctor
-
APK a probar.
- Usamos para el ejemplo la apk provista por WebdriverIO.
- Pueden ejecutar desde la línea de comandos lo siguiente como alternativa:
- curl https://github.com/webdriverio/native-demo-app/releases/download/v0.4.0/Android-NativeDemoApp-0.4.0.apk --output Android-NativeDemoApp-0.4.0.apk
- Para que el ejemplo funcione la apk debe estar dentro de la carpeta /app en la base de nuestro proyecto con el nombre configurado en la capability app del archivo config/wdio.mobile.conf.ts.
Descargar e instalar
- Docker Desktop
- Crearse una cuenta gratuita.
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
git clone https://github.com/charlyautomatiza/starter-wdio.git
npm install
npm run wdio-web
npm run wdio-web-docker
npm run wdio-mobile
npm init wdio .
npm run open-report