Primeros Pasos Con WebdriverIO
Escrito por: fmoradev | 651 Palabras | Tiempo de lectura: 4 minutos
WebdriverIO es un framework de automatizaci贸n progresivo, la cual, nos permite automatizar aplicaciones web y m贸viles a trav茅s de una suite bastante robusta y estable. Trabaja bajo NodeJS, por ende, necesitas conocimientos en Javascript para sacar todo su potencial (aunque con un conocimiento b谩sico ya puedes utilizarlo de manera profesional 馃槑).
Con WebdriverIO puedes automatizar:
- Aplicaciones web escritas en React, Vue, Angular, Svelte o cualquier framework Javascript.
- Aplicaciones m贸viles nativas o h铆bridas, ya que, utiliza un emulador/simulador de un dispositivo real.
- Aplicaciones nativas de escritorio escritas en Electron.js
- Permite el unit y component testing de componentes web en el navegador.
WebdriverIO proporciona un soporte completo a los protocolos WebDriver y Webdriver-BiDi avalados por la W3C y tambi茅n al protocolo propietario de Google Chrome DevTools y Puppeteer. Cabe se帽alar que est谩 licenciado bajo una licencia MIT y est谩 bajo el amparo de la OpenJS Foundation, por lo cual, se valora el sentido comunitario y de colaboraci贸n y no est谩 orientado a inter茅ses monetarios.
Requisitos previos
Para poder usar WebdriverIO, necesitas lo siguiente:
- Conocimientos b谩sicos en Javascript, aunque se aconseja por lo menos saber acerca de Promesas, Arrow functions, sincronismos y asincronismos.
- Conocimientos de Document Object Model o estructura de un documento HTML.
- Una versi贸n de NodeJS 16 o superior. Ya escrib铆 un art铆culo al respecto Usando NVM para instalar distintas versiones de NodeJS f谩cilmente.
- Un editor de c贸digo (de preferencia VIM o Emacs 馃槑).
Instalaci贸n
Para instalar WebdriverIO puedes hacerlo con NPM, YARN o PNPM con el siguiente comando:
- NPM: Si tienes ya creado un archivo
npm init wdio .
o creando un archivo nuevonpm init wdio ./ruta/archivo
- YARN: Si tienes ya creado un archivo
yarn init wdio .
o creando un archivo nuevoyarn init wdio ./ruta/archivo
- PNPM: Si tienes ya creado un archivo
pnpm init wdio .
o creando un archivo nuevopnpm init wdio ./ruta/archivo
.
Con este comando se decarga el paquete WebdriverIO CLI, la cual, lanzar谩 el asistente de configuraci贸n:
A continuaci贸n te comparto las respuestas a responder si quieres generar una estructura sencilla para pruebas E2E en un navegador web.
- What type of testing would you like to do? Selecciona:
E2E Testing - of Web or Mobile Applications
- Where is your automation backend located? Selecciona:
On my local machine
- Which environment you would like to automate? Selecciona:
Web
- With which browser should we start? Sellecciona a gusto:
Chrome/Firefox/Edge/Safari
- Which framework do you want to use? Selecciona:
Mocha
- Do you want to use a compiler? Selecciona:
No
- Do you want WebdriverIO to autogenerate some test files? Selecciona:
Y
- Where should these files be located? Selecciona:
ENTER
para ruta por defecto. - Do you want to use page objects
(https://martinfowler.com/bliki/PageObject.html)
? Selecciona:Y
- Where are your page objects located? Selecciona:
ENTER
para ruta de los pageobjects - Which reporter do you want to use? Sellecciona:
allure
o a elecci贸n - Do you want to add a plugin to your test setup? Selecciona:
ENTER
para no usar ninguno de momento - Do you want to add a service to your test setup? Selecciona:
ENTER
para no usar ninguno de momento - What is the base url? Selecciona:
ENTER
para base_urllocalhost
- Do you want me to run
npm install
Selecciona:Y
Con esto ya tienes un proyecto base, con un test de pruebas en el archivo test/test.e2e.js
:
import { expect } from '@wdio/globals'
import AllureReporter from '@wdio/allure-reporter'
import LoginPage from '../pages/login.page.js'
import SecurePage from '../pages/secure.page.js'
describe('My Login application', () => {
it('should login with valid credentials', async () => {
AllureReporter.addSeverity('critical')
await LoginPage.open()
await LoginPage.login('tomsmith', 'SuperSecretPassword!')
await expect(SecurePage.flashAlert).toBeExisting()
await expect(SecurePage.flashAlert).toHaveTextContaining(
'You logged into a secure area!')
})
})
Puedes abrir el archivo creado con cualquier editor de c贸digo para observar su estructura. En cambio, si deseas correr las pruebas generadas automaticamente lo puedes hacer con:
npx wdio run ./wdio.conf.js
Espero te sirva esta breve introducci贸n a WebdriverIO, en pr贸ximos art铆culos iremos trabajando con esto para generar un proyecto de pruebas m谩s profesional.
Hasta la pr贸xima!!!
Compartir en: