Comienza a automatizar tus pruebas móviles con Cucumber y Appium.

Última actualización: 14 de junio de 2020 Continuous Testing Modo experto

 

Índice

Introducción

Este tutorial ayuda a los ingenieros de pruebas a comenzar automatizando sus pruebas móviles utilizando el framework Cucumber y las bibliotecas Appium.

Antes de abordar los detalles sobre el uso de los frameworks Cucumber y Appium, aquí tenéis una breve introducción.

Pepino

Cucumber es uno de los marcos de pruebas BDD (Desarrollo Guiado por Comportamiento) más utilizados. El Desarrollo Guiado por Comportamiento nos brinda la oportunidad de crear scripts de prueba desde la perspectiva tanto del desarrollador como del cliente.

Las pruebas basadas en pepino están diseñadas como,

  • Caracteristicas - Escenarios de prueba descritos en lenguaje sencillo.
  • Pasos Código de prueba correspondiente a las características.

Características y pasos del pepino adherirse a la Dado, cuando y Entonces esquema de pruebas, donde

  • Dado - Describe las entradas y el estado inicial del escenario para la prueba.
  • Cuando - Describe la acción u operación realizada
  • Luego - Resultado de la acción y afirmación del resultado.

Aquí tenéis un ejemplo de un archivo de características.

[javascript] Funcionalidad – Acción de inicio de sesión Escenario – Inicio de sesión exitoso Dado – Introducir las credenciales Cuando – Acción de inicio de sesión realizada Entonces – Sesión iniciada correctamente [/javascript]

Nota: Cucumber también incluye una directiva Before y After que permite a los evaluadores pasar al estado inicial del escenario de prueba y al estado anterior al escenario de prueba, respectivamente.

Dado que el framework Cucumber se basa en características descritas en inglés sencillo, puede ser comprendido e implementado rápidamente por todas las partes interesadas.

Pasos de pepino Contiene la lógica de programación central.

Aquí tenéis un ejemplo conciso en Javascript:

[javascript] “Usar script” . . Dado(/^Ingresar las credenciales$/, async () => { . . } Cuando(/^Hacer clic en el botón de inicio de sesión$/, async () => { . . } Entonces(/^Sesión iniciada correctamente$/, async () => { . . } [/javascript]

¿Cómo funciona Cucumber?

Las pruebas de Cucumber deben ejecutarse proporcionando un archivo Feature (archivo que contiene la descripción de la característica) y el archivo Step correspondiente (archivo que contiene la lógica principal). Ejemplo: [javascript]node_modules/.bin/cucumber-js .Featuresexample.feature -r .Stepsexample.js[/javascript] Cucumber compara la cadena proporcionada en “Given” en el archivo Features con la cadena “Given” proporcionada en el archivo JavaScript.

Nota: Observe en el ejemplo anterior cómo Dado, cuándo, entonces En el formato Archivo de características coincide con el Archivo JavaScript de pasos.

Appium

Appium es un Open Source, Medición utilidad para probar aplicaciones nativas, web e híbridas en plataformas de sistemas operativos móviles iOS y Android, para la cual tenemos un estudio: Appium Studio.

Basado en Arquitectura cliente-servidorLos clientes de Appium envían comandos de automatización al servidor de Appium, que los traduce a comandos específicos de la plataforma y los ejecuta en los dispositivos.

Clientes de Appium Son básicamente bibliotecas expuestas por el framework Appium para la automatización móvil, utilizadas por los ingenieros de pruebas. Admite varios lenguajes como Java, JavaScript y Python.

Ejemplo de introducción a Cucumber y Appium

Este ejemplo se basa en las siguientes tecnologías y plataformas.

  1. Plataforma Windows para el desarrollo
  2. Android como sistema operativo de dispositivo
  3. JavaScript como lenguaje de programación
  4. Visual Studio como entorno de desarrollo integrado (IDE).

Requisitos previos e instalaciones

NodeJS y Appium Desktop

  1. Descargar nodo
  2. Haga doble clic en el archivo descargado y siga los pasos del asistente para finalizar la instalación de Node.
  3. Descarga la aplicación Appium Desktop.
  4. Inicie el instalador de la plataforma que prefiera y siga el asistente de configuración.
  5. Ejecute el Escritorio Appium Al estar instalado en la máquina, esto también inicia el servidor Appium.

Visual Studio Code

Descarga e instala siguiendo las instrucciones oficiales. Visual Studio Code Desbobinador hidráulico de alta resistencia:Para bobinas de mayor peso o necesidades de automatización más elevadas, visite ladesbobinador hidráulico de alta resistencia.

Android Studio y ADB

También tendrás que instalar Android Studio/Java porque tendrás que usar el ADB Utilidad para el reconocimiento de dispositivos Android.

Descargue nuestra Estudio Android Para instalar el software, consulte la página oficial de Android Studio.

Reconocimiento de dispositivos

Conectar el dispositivo móvil al PC mediante un cable USB y habilitar la Modo desarrollador/Depuración USB en el dispositivo Android.

Descargar aplicación de muestra para Android

Descarga la aplicación de ejemplo para Android llamada Eribank usando el enlace https://experitest.s3.amazonaws.com/eribank.apk

Una vez completados todos los pasos anteriores, estamos listos para el ejemplo de Cucumber y Appium.

Creación de la primera prueba

Paso 1: Agregar carpeta de espacio de trabajo en Visual Studio

Visual Studio Start

Paso 2: Ve a la terminal y crea el archivo package.json.

Nueva terminal de Visual Studio

Nota: Package.json Contiene los metadatos de un proyecto NodeJS/JS.

En la terminal, ejecute,

[javascript]npm init[/javascript]

Especifique toda la información necesaria para el proyecto como se muestra a continuación.

estudio visual

Esto creará un package.json, modificación y guárdela para especificar las dependencias del proyecto.

[javascript] “Dependencias”: { “selenium-webdriver”: “4.0.0-alpha.7”, “cucumber”: “6.0.5”, “chai”: “4.2.0”, “assert”: “2.0.0” } [/javascript]

pepino json

Nota: Usamos la WebDriverJS Framework que utiliza Appium.

Paso 3: Resolver dependencias

Una vez completado, ejecute el siguiente comando en la terminal.

[javascript]npm install[/javascript]

Esto descarga las dependencias y crea un directorio node_modules (donde se descargan las dependencias) en el espacio de trabajo.

Paso 4:  Crear directorio de características y pasos

Pasos del pepino

Paso 5: Crea el archivo Features para el framework Cucumber.

Crea el siguiente archivo (Función de inicio de sesión de Eribank) en .CaracteristicasIniciar sesión en Eribank directorio

[javascript] Funcionalidad: Iniciar sesión en la aplicación Eribank @AddScenario Escenario: Iniciar sesión en la aplicación Eribank. Se proporcionan las credenciales de entrada. Al hacer clic en el botón de inicio de sesión, se verifica el inicio de sesión. [/javascript]

Como ya se describió en la sección de Cucumber, definimos aquí en texto plano:

Elemento

Escenario

Dado, cuando y Entonces.

Paso 5: Crea un archivo JavaScript para el archivo de características de Cucumber correspondiente.

Ahora creamos la implementación principal usando Appium/WebDriverJS en un archivo JavaScript. Crear archivo EribankLogin.js pulgpasos carpeta.

[javascript] until = wd.until; const { Before, Given, When, Then , After } = require('cucumber') var assert = require('assert'); let driver; // Estableciendo las capacidades deseadas. var desiredCaps = { platformName: “Android”, deviceName: “a3ae1c63”, app: “c:\eribank.apk”, appPackage: “com.experitest.ExperiBank”, appActivity: “.LoginActivity”, browserName: ”, }; // Función Before para la inicialización del controlador Before( {timeout: 6000 * 10000}, async function () { console.log('Before: Conectando al dispositivo…'); driver = await new wd.Builder().usingServer(“http://localhost:4723/wd/hub”).withCapabilities(desiredCaps).build(); console.log(”); }) // Función Given de Cucumber, con credenciales Given(/^Input Credentials$/, {timeout: 6000 * 1000}, async () => { try { console.log('Then: Proporcionar las credenciales de la aplicación… Iniciar'); var okElements = await driver.findElements(By.xpath(“//*[@text='OK']”)); if ( okElements.length > 0) { var okElement = await driver.findElement(By.xpath(“//*[@text='OK']”)); await okElement.click(); } const userElement = await driver.findElement(By.xpath(“//*[@text='Username']”)); // Comando de automatización. await userElement.sendKeys(“company”); const passwordElement = await driver.findElement(By.xpath(“//*[@text='Password']”)); await passwordElement.sendKeys(“company”); console.log('A continuación: Proporcione las credenciales de la aplicación… Fin'); console.log(' '); } catch (error) { } }); // Función When para la implementación de Action When(/^Click the login button$/, async () => { console.log('When: Click the login button … Start'); const loginElement = await driver.findElement(By.xpath(“//*[@text='Login']”)); await loginElement.click(); console.log('When: Click the login button… End'); console.log(”); }); // Comprobar el resultado en la función Then Then(/^Check Login$/, async () => { console.log('Then: Checking if it succeeding… Start'); // Comprobar el botón de cierre de sesión await driver.wait(until.elementLocated(By.xpath(“//*[@text='Logout']”), 1000)); var logoutElements = await driver.findElements(By.xpath(“//*[@text='Logout']”)); assert.notEqual(logoutElements.length, 0); console.log('Entonces: Comprobando si el inicio de sesión fue exitoso… Fin'); }); // Función After para liberar el controlador After(async function() { console.log('Desconectando…..'); console.log(”); await driver.quit(); }) [/javascript]

Ejecutando la prueba

Inicie Appium Desktop y haga clic en el botón Iniciar servidor; esto iniciará el servidor en el host y puerto especificados.

Iniciar sesión en Appium

Nota: Antes de ejecutar el código, asegúrese de que su PC reconozca el dispositivo. Ya mencionamos este paso en la sección de... Requisitos previos e instalación sección bajo Reconocimiento de dispositivos.

Ahora ejecuta el código en Visual Studio Code. El símbolo del sistema de la terminal utiliza el siguiente comando.

[javascript]>> node_modules/.bin/cucumber-js .FeaturesEribankLogin -r .StepsEribankLogin.js[/javascript] pepino appium

Ahora que les hemos mostrado cómo funcionan juntos Cucumber y Appium, les sugerimos que lo prueben ustedes mismos. El código completo del proyecto de ejemplo se puede descargar del repositorio de Git. Ejemplo de pepino y apio.

Guy ArieliCTO

También puede interesarle