Calabash Android Tutorial sobre herramientas de prueba
⚡ Resumen inteligente
Calabash es un marco de pruebas de aceptación de código abierto que impulsa acciones reales de la interfaz de usuario en Android y aplicaciones para iOS, utilizando un lenguaje sencillo. Cucumber escenarios respaldados por definiciones de pasos en Ruby y un servidor de pruebas en el dispositivo.
¿Qué es Calabash?
Calabash es una aceptación de código abierto Pruebas marco que le permite escribir y ejecutar pruebas para iOS y Android Aplicaciones.
Es un marco de interfaz de usuario automatizado que permite escribir pruebas en Ruby utilizando Cucumber.
Calabash Funciona habilitando interacciones automáticas de la interfaz de usuario dentro de una aplicación móvil, como presionar botones, ingresar texto, validar respuestas, etc. Se puede configurar para ejecutarse en diferentes Android y dispositivos iOS, que proporciona comentarios y validaciones en tiempo real.
⚠️ Nota de versión: Microsoft puso fin a sus contribuciones a Calabash después del iOS 11 final y Android 8 lanzamientos y el repositorio calabash-android Ahora se describe a sí mismo como un proyecto que busca un responsable de mantenimiento. El tutorial que aparece a continuación se conserva tal como está escrito, y las alternativas modernas se tratan en la última sección.
Por qué Calabash de mercadeo?
Antes de instalar nada, conviene sopesar los beneficios que ofrece la plataforma frente a los costes de mantenimiento.
| Ventajas | Desventajas |
| Ayuda a aumentar el rendimiento/productividad. | Se requiere competencia para escribir los scripts de prueba de automatización. |
| Calidad mejorada o mayor previsibilidad de la calidad. | La depuración del script de prueba es un problema importante. |
| Mejora de la robustez (consistencia) de procesos o productos. | El mantenimiento de las pruebas es costoso en el caso de los métodos de reproducción. |
| Mayor consistencia de la producción y reducción de costos y gastos laborales. | El mantenimiento de los archivos de datos de prueba es difícil si el script de prueba prueba más pantallas. |
Calabash y TDC
- Calabash is Desarrollo impulsado por el comportamiento (BDD)Es lo mismo que Desarrollo basado en pruebas (TDD)Pero en lugar de crear pruebas para describir la estructura de las API, se especifica el comportamiento de la aplicación.
- BDD es un proceso en el que múltiples partes interesadas intervienen para crear un entendimiento común de lo que se debe construir.
- BDD es útil para crear el software adecuado y diseñarlo desde la perspectiva del propietario de la empresa.
El diagrama a continuación muestra cómo un Calabash El conjunto de herramientas está estructurado en capas, desde el archivo de características legible para la empresa en la parte superior hasta la interacción con el dispositivo en la parte inferior.
Cómo instalar Calabash
Calabash on Windows Necesita cuatro prerrequisitos instalados en orden. Complete cada parte por completo antes de comenzar la siguiente, porque la gema calabash-android comprueba Ruby y el Android SDK durante la instalación.
Parte I) Instalación Java JDK – Consulte esta guía – /instalar-java.html
Parte II) Descargue e instale Ruby.
Paso 1) Descarga Ruby desde el URL https://rubyinstaller.org/downloads
Paso 2) Abra el archivo ejecutable y siga las instrucciones en pantalla. Una vez finalizada la instalación, verá la siguiente pantalla. Haga clic en Finalizar.
Inicie el símbolo del sistema con Ruby activado Windows 10 y escriba debajo de Comando.
ruby -v
La consola muestra la versión del intérprete instalado, como se indica a continuación.
Parte III) Descargar e instalar Android
Paso 1) Descargar Android Studio at https://developer.android.com/studio
Paso 2) Abra el archivo ejecutable, siga las instrucciones en pantalla y complete la instalación. Haga clic en el botón Finalizar cuando haya terminado.
Parte IV) Instalación Calabash Android
Paso 1) En la consola, escribe gem install calabash-android. La instalación comenzará y tardará un tiempo en completarse.
Paso 2) Una vez finalizada la instalación, escriba calabash-android version
Para lograr autenticidad fue clave trabajar con Calabash
Una vez instalada la gema, la siguiente tarea es localizar la carpeta del framework y comprender la estructura básica con la que viene instalada.
Abra la carpeta “calabash-android-0.9.0”. Se encuentra en la ruta C:\Ruby23\lib\ruby\gems\2.3.0\gems\calabash-android-0.9.0. Los nombres de las carpetas cambiarán en sincronía con la versión de Ruby/calabash que instale en su máquina.
Abra la carpeta del esqueleto de características. Esté atento a este marco básico.
- El archivo *.feature contiene escenarios que vamos a automatizar.
- El método utilizado por el archivo de características está escrito en el archivo *.rb dentro de la carpeta “step_definitions”.
- Los métodos comunes, la configuración del entorno, la instalación de aplicaciones y los enlaces deben colocarse dentro de la carpeta "soporte".
Renunciar y construir la aplicación
- Calabash-Android renuncia *.apk
- Calabash-Android compilación *.apk
Al firmar, se reemplaza la firma del desarrollador con una clave de depuración para que el servidor de pruebas pueda instrumentar la aplicación, y el paso de compilación genera ese servidor de pruebas, como muestra la salida de la consola a continuación.
Conecte el dispositivo al sistema/Abra el emulador
Verifique el dispositivo conectado. Escriba el comando
adb devices
Se debe mostrar la lista de dispositivos conectados. Si el dispositivo no aparece, siga los pasos de depuración y emparejamiento USB en el Guía de conexión ADB resuelven la mayoría de los casos.
Cómo encontrar el localizador de elementos
- Abre la consola. Escriba el comando.
calabash-android console "APK Path" start_test_server_in_background
- El comando anterior ejecuta la aplicación en el dispositivo. Para encontrar el localizador de elementos, utilice el siguiente comando.
query "*"
Esto mostrará todos los localizadores de elementos en la pantalla actual. Los evaluadores que prefieran un inspector visual pueden verificar la misma jerarquía con uiautomatorviewer.
Calabash Estructura del proyecto y pasos predefinidos
En lugar de copiar manualmente la carpeta gem, el framework puede generar un proyecto funcional por usted. Ejecutar el generador dentro del directorio de su proyecto crea el estándar Cucumber diseño que cada Calabash suite espera.
calabash-android gen
El árbol generado separa las tres preocupaciones de un conjunto de herramientas BDD:
- caracteristicas/ — los escenarios de Gherkin, uno .característica Archivo por recorrido del usuario.
- características/definiciones_de_pasos/ — los métodos Ruby que coinciden con cada línea de Gherkin, incluido el archivo calabash_steps.rb incluido.
- características/soporte/ — configuración del entorno y los mecanismos que instalan, inician y detienen la aplicación en cada escenario.
El archivo calabash_steps.rb incluido es más importante de lo que parece a simple vista. Contiene un amplio conjunto de pasos predefinidos en inglés, lo que permite crear un primer escenario donde se pueden pulsar botones, introducir texto y realizar comprobaciones sobre cadenas visibles antes de escribir un solo método personalizado. Los pasos personalizados solo son necesarios cuando el proceso requiere más que esas frases predefinidas.
Hay dos configuraciones a nivel de proyecto que conviene conocer desde el principio. Las capturas de pantalla se guardan en el directorio de trabajo actual por defecto, y la variable de entorno SCREENSHOT_PATH las redirige a otra ubicación, lo que mantiene los archivos de compilación ordenados en una máquina compartida. Para interactuar con los diálogos del sistema u otra aplicación, se requiere el backend UIAutomator2, que se inicia con start_test_server_in_background(with_uiautomator: true).
Crear nuevos guiones
Abra el archivo de características y las siguientes líneas
Feature: Login feature Scenario: As a valid user I can log into my app When I press "Login" And I enter my username And I enter my password Then I see "Welcome to coolest app ever"
Abra el archivo de definición de pasos y defina el método en el archivo *.rb.
Given /^I am on the login windows$/ do wait_for(:timeout =>100) { element_exists("* id:'loginInput;")} check_element_exists("* id:'loginInput;") end
Ejecutar el proyecto de prueba.
Para ejecutar el proyecto de prueba, use el siguiente comando
calabash-android run "APK Path" "feature file Path" --tags "tag name"
Cucumber Imprime cada paso a medida que se ejecuta, y una ejecución exitosa finaliza con los totales de escenario y paso que se muestran aquí.
Preguntas frecuentes sobre bancarrota Calabash Errores y cómo solucionarlos
La mayoría de los fallos iniciales se deben a las reglas de empaquetado y permisos de las que depende el servidor de pruebas, no al escenario en sí. La siguiente tabla relaciona los síntomas más frecuentes con su causa documentada.
| Síntoma | Causa probable y solución |
| La aplicación se bloquea en el instante en que comienza una prueba. | Al APK le falta android.permission.INTERNET, que el servidor de prueba necesita para aceptar comandos. Declare el permiso en AndroidManifest.xml y reconstruir. |
| Los botones y el texto no responden a los toques. | No se ha declarado ninguna versión de targetSdkVersion. Añada una entrada uses-sdk que indique el nivel de SDK con el que se compiló la aplicación. |
| El servidor de prueba no puede conectarse a la aplicación. | El archivo APK no se firmó con la clave de depuración. Ejecute el comando de firma y, a continuación, vuelva a compilar antes de ejecutarlo. |
| No se muestran dispositivos en tiempo de ejecución. | La depuración USB está desactivada o falta el controlador. Primero, compruebe que el número de serie aparece en la salida de adb devices. |
| Los pasos fallan con un error de paso no definido. | La redacción de Gherkin no coincide con ninguna expresión regular en step_definitions. Copie el fragmento sugerido. Cucumber imprime e implementa. |
Dos entradas en el manifiesto corrigen las dos primeras filas. Añádalas antes de volver a firmar el APK.
<uses-permission android:name="android.permission.INTERNET" /> <uses-sdk android:targetSdkVersion="SDK_VERSION" />
Los fallos por tiempo de espera suelen deberse a problemas ambientales más que funcionales. Un emulador lento, un inicio de aplicación en frío o una sincronización en segundo plano pueden provocar que una pantalla supere el tiempo de espera establecido, por lo que conviene aumentar el tiempo de espera antes de modificar un paso que, en realidad, era correcto.
Is Calabash ¿Aún se mantiene? Alternativas para las pruebas móviles modernas
Calabash Ya no se está desarrollando activamente. Microsoft dejó de contribuir después de dar soporte a la versión final de iOS 11 y Android Tras ocho versiones, el proyecto es ahora una base de código abierto archivada sin responsable de mantenimiento. Las suites existentes aún funcionan en dispositivos antiguos, pero se debería comenzar a trabajar en un marco de trabajo compatible.
| Marco conceptual | Plataforma | Mejores adecuados para |
| Appium | Android y iOS | Suites multiplataforma en Java, Python, Rubí o JavaGuion y el reemplazo más cercano para un Calabash . |
| Espresso | Android único | Pruebas rápidas en proceso escritas en Kotlin o Java por los propios desarrolladores de la aplicación. |
| Prueba XCUITest | solo iOS | Nativo Xcode suites, el sucesor respaldado de los retirados Marco de automatización de la interfaz de usuario. |
| Maestro y Desintoxicación | Android y iOS | Nuevos proyectos de código abierto orientados a la resistencia a fallos puntuales y a las aplicaciones React Native. |
El hábito BDD en sí se transfiere limpiamente. Los archivos de características de Gherkin permanecen exactamente como están, y solo cambian los cuerpos de las definiciones de pasos, porque Cucumber se sitúa encima del controlador en lugar de dentro de él. Los equipos que migran normalmente conservan los archivos de características y reescriben los pasos de Ruby en función de Appiumy reutilizar el mismo prueba móvil matriz de dispositivos y pruebas de automatización oleoducto que ya utilizan.
















