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.
















