Appium Dependencia de Maven: Configuración con Eclipse Ejemplo de proyecto

⚔ Resumen inteligente

Appium La gestión de dependencias de Maven permite que un proyecto de automatización móvil declare el artefacto java-client en pom.xml, de modo que Maven resuelve automÔticamente cada jar y la misma compilación se ejecuta en cualquier mÔquina sin descargas manuales.

  • šŸ”“ Lo que hace Maven: Apache Maven Gestiona el ciclo de vida de la compilación y resuelve las dependencias desde un Ćŗnico archivo pom.xml declarativo.
  • ā˜‘ļø Un artefacto: La dependencia io.appium java-client incluye el Selenium API, controlador remoto y archivos JAR de soporte de forma transitiva.
  • āœ… Disciplina de versión: Haga coincidir la versión del cliente Java con la Selenium rango que declara para evitar NoSuchMethodError en tiempo de ejecución.
  • 🧪 Disposición fija: Surefire ejecuta Ćŗnicamente las clases que se encuentran en src/test/java, por lo que las pruebas mal ubicadas se compilan pero nunca se ejecutan.
  • šŸ› ļø LĆ­nea de comando: mvn clean test compila y ejecuta el conjunto de pruebas, escribiendo los resultados en target/surefire-reports.
  • šŸ“Š Requisitos previos: Maven nunca empieza el Appium servidor o dispositivo, por lo que ambos deben estar listos antes de que comience la compilación.

Appium Configuración de dependencias de Maven con pom.xml y el artefacto java-client

¿Qué es Apache Maven?

Apache Maven es un JavaHerramienta de automatización y gestión de proyectos basada en. Proporciona un marco multitarea para que los desarrolladores faciliten el ciclo de vida completo de la compilación para Java aplicaciones. Maven estÔ predefinido y declarado en un formato XML llamado POM (Modelo de objetos de proyecto) y denominado 'pom.xml'. También se puede utilizar para otros lenguajes como C#, Scala, Ruby, etc.

Utilizando el framework Maven, puedes gestionar fƔcilmente las siguientes tareas en cualquier proyecto:

  • ciclo de construcción
  • Documentación del proyecto
  • Informe de comprobaciones
  • Gestión de scrums
  • Información de lanzamiento

Los usos bƔsicos de Maven son:

  • Aplica una estructura de directorio estĆ”ndar.
  • Proporcionar una estructura de proyecto reutilizable y fĆ”cil de mantener.
  • Resolver dependencias de paquetes.
  • Proporcionar un marco de gestión de la configuración.

Esa capacidad de resolución de dependencias es exactamente lo que un Appium necesidades del proyecto, porque el Java El cliente tira de una cadena de Selenium archivos JAR que nadie quiere descargar manualmente.

Descargar Appium Dependencias de Maven

Antes de empezar a escribir un Appium Prueba de dependencias con Maven, necesitas descargar el Appium Dependencia de Maven: la Appium Archivo de descarga JAR — desde el Sitio web del repositorio central de MavenLa captura de pantalla que aparece a continuación muestra la lista de artefactos java-client en Maven Central, donde estĆ”n disponibles todas las versiones publicadas y sus fragmentos de código listos para usar.

Appium Listado de artefactos java-client en la pÔgina de búsqueda del repositorio central de Maven.

O bien, agregue directamente el archivo POM.xml que se menciona a continuación:

<dependency>
  <groupId>io.appium</groupId>
  <artifactId>java-client</artifactId>
  <version>3.4.1</version>
</dependency>

āš ļø Nota de versión: <font dir="auto" style="vertical-align: inherit;">las </font> 3.4.1 La coordenada anterior es el ejemplo original y aĆŗn muestra la forma correcta del bloque. Es anterior al protocolo W3C WebDriver, por lo que un nuevo proyecto deberĆ­a aumentar la versión. En el momento de escribir esto, la versión actual en Maven Central es 10.1.1, que requiere Selenium 4.42.0 o posterior.

<dependency>
  <groupId>io.appium</groupId>
  <artifactId>java-client</artifactId>
  <version>10.1.1</version>
</dependency>

Por favor revisa nuestro tutorial experto para aprender cómo configurar Maven con Eclipse.

Appium Estructura del proyecto Maven y dependencias requeridas

Maven impone una estructura fija, y conocerla evita la mayor parte de la confusión que se presenta mÔs adelante en este tutorial. Un proyecto generado contiene cuatro ubicaciones importantes:

  • pom.xml — el modelo de objetos del proyecto en la raĆ­z del proyecto, donde se declaran todas las dependencias y complementos.
  • src / main / java — clases de aplicación y de ayuda.
  • src/test/java — clases de prueba, y el Ćŗnico directorio que el complemento Surefire escanea cuando se ejecuta una compilación.
  • dirigidos — Resultados compilados e informes de pruebas, regenerados en cada compilación.

El Appium java-client es la única dependencia obligatoria, porque declara el Selenium API, controlador remoto y artefactos de soporte de forma transitiva. Muchos equipos todavía fijan Selenium explícitamente para que la versión sea visible en un solo lugar, y agregue un ejecutor de pruebas:

<dependencies>
  <dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>10.1.1</version>
  </dependency>
  <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.42.0</version>
  </dependency>
</dependencies>

Mantenga las dos versiones compatibles. Una versión de java-client indica que Selenium rango que admite y mezclar un cliente antiguo con uno mucho mÔs nuevo Selenium es la causa mÔs común de un NoSuchMethodError en tiempo de ejecución. repositorio java-client documenta el emparejamiento para cada lanzamiento.

Aplicación de prueba con Appium y Maven

Con la dependencia establecida, el Eclipse El siguiente flujo de trabajo crea un proyecto ejecutable desde cero. Después de configurar el Appium Java Complemento Maven en Eclipse, el espacio de trabajo estÔ listo para probar cualquier Android .apk aplicación con Appium y Maven, como se muestra en el Appium Ejemplo de proyecto Maven a continuación.

Paso 1) En este paso,

  1. Vaya a NUEVO >> seleccione el proyecto Maven
  2. Haz clic en el botón "siguiente"

El asistente para nuevos proyectos se abre con el proyecto Maven resaltado, como se muestra aquĆ­.

Eclipse Asistente para nuevo proyecto con proyecto Maven seleccionado

Paso 2) Luego, en la ventana 'Nuevo proyecto Maven', ingrese 'Appium Prueba' en las columnas ID de grupo e ID de artefacto. En este paso, debe ingresar:

  1. Identificación del grupo
  2. Identificación del artefacto
  3. Versión
  4. Embalaje
  5. Nombre y Description
  6. Termine

El formulario de Nuevo Proyecto Maven completado tiene el aspecto de la captura de pantalla que aparece a continuación.

Nueva ventana de proyecto Maven con ID de grupo, ID de artefacto, versión y empaquetado completados.

Al hacer clic en el botón Finalizar se abrirÔ una nueva clase bajo el ID de grupo definido (AppiumNombre de la prueba.

Paso 3) Para comenzar con el Appium Para escribir el script, haga clic con el botón derecho en 'src/main/java' en la ventana del explorador de la izquierda. Luego seleccione Nuevo >> clase. Escriba el script. Appium código dentro de la clase seleccionada.

El menú contextual utilizado para crear esa clase se muestra a continuación.

Menú contextual al hacer clic con el botón derecho en src/main/java que muestra Nuevo y Clase en el Eclipse explorador

Paso 4) En el mismo proyecto, haz clic en pom.xml en el menú del explorador de la izquierda. Todas las dependencias serÔn visibles por defecto en la pestaña 'pom.xml'. Consulta la imagen a continuación.

pestaƱa del editor pom.xml en Eclipse listando las dependencias del proyecto resueltas

Si el pom.xml predeterminado no existe, entonces simplemente agregue todo el Maven Appium dependencias, por ejemplotracted del sitio web del repositorio central de Maven:

https://central.sonatype.com/artifact/io.appium/java-client

El archivo pom.xml editado con el Appium Las dependencias añadidas se muestran a continuación.

Vista del código fuente pom.xml después de la Appium La dependencia java-client se ha pegado en

Paso 5) Ahora, haga clic con el botón derecho en 'pom.xml' en el explorador de la izquierda, o en el código XML para el 'AppiumProyecto 'Test'. A continuación, haga clic en la opción 'Run As >> Maven Clean', como se muestra a continuación.

Eclipse Submenú Ejecutar como con la opción Maven Clean resaltada.

Mientras se ejecuta, puede ver todos los archivos jar relacionados con Maven y un mensaje de éxito, como en la salida de la consola a continuación. Así es como se ejecuta un Appium Java Prueba de dependencias de Maven del cliente en un entorno configurado con Maven.

Eclipse La consola muestra los archivos jar de Maven descargados y el mensaje de éxito de la compilación.

Como correr Appium Pruebas con comandos de Maven

El Eclipse El menú es prÔctico, pero la misma compilación debe ejecutarse sin supervisión en un servidor de compilación, y en ese caso la línea de comandos es la única opción. Abra una terminal en la carpeta que contiene pom.xml y use estos comandos.

mvn clean
mvn clean test
mvn clean install
mvn test -Dtest=LoginTest

Cada uno tiene una función distinta:

  • mvn limpio elimina el target directorio para que nada obsoleto sobreviva a la siguiente compilación. Este es el comando Eclipse Tutorial paso a paso sobre los activadores.
  • prueba limpia mvn compila el proyecto y ejecuta las clases de prueba. El complemento Maven Surefire las recoge automĆ”ticamente desde src/test/java, utilizando los patrones de inclusión predeterminados Test*.java, *Test.java, *Tests.java y *TestCase.java.
  • mvn clean install Ejecuta las pruebas y luego coloca el artefacto empaquetado en tu repositorio local, para que otro proyecto pueda depender de Ć©l.
  • mvn test -Dtest=LoginTest Limita la ejecución a una sola clase mientras depuras.

Dos puntos sorprenden a la gente. Primero, el Appium El servidor debe estar en funcionamiento y un dispositivo o emulador debe estar conectado antes de que comience la compilación, porque Maven no inicia ninguno de los dos; verifique el dispositivo con un adb Primero, verifique. Segundo, los resultados se escriben en target/surefire-reports, que es la carpeta que debe archivar un trabajo de CI. Guía de uso de Surefire cubre las opciones de configuración en detalle y los mismos comandos controlan un Appium suite de Jenkins.

Preguntas frecuentes sobre bancarrota Appium Errores de Maven y cómo solucionarlos

La mayoría de los fallos en un Appium Los problemas de configuración de Maven suelen deberse a varias causas recurrentes, mÔs que al código de prueba en sí. La siguiente tabla relaciona cada síntoma con su solución habitual.

Síntoma Causa probable Solución
No se pudieron resolver las dependencias para io.appium:java-client Cadena de versión incorrecta o falta de acceso a la red de Maven Central. Copia las coordenadas directamente del listado de Maven Central y vuelve a ejecutar la compilación.
NoSuchMethodError o NoClassDefFoundError de un Selenium clase Las versiones de java-client y selenium-java son incompatibles. Coincidir con el Selenium versión al rango que declara la versión del cliente Java
Las pruebas compilan pero ninguna se ejecuta. Las clases de prueba se encuentran en src/main/java, o el nombre de la clase no coincide con un patrón de inclusión de Surefire. Muévalos a src/test/java y nombre la clase de manera que termine en Test.
Conexión rechazada en el puerto 4723 El Appium El servidor no estÔ en funcionamiento. Iniciar el Appium servidor antes de la compilación
Capacidad no vƔlida o no compatible Nombres de capacidades heredadas utilizados con un controlador moderno Revver el actual capacidades deseadas para tu plataforma
Versión principal del archivo de clase no compatible El JDK utilizado por Maven difiere del nivel del compilador en pom.xml. Alinea las propiedades maven.compiler.source y target con tu instalación. JDK

Cuando falla una compilación, lea el primer error que muestra Maven, no el último. Las últimas líneas suelen ser consecuencia de la falta del primer artefacto.

Preguntas Frecuentes

Toma la versión mÔs reciente que aparece en Maven Central en lugar de una versión copiada de un tutorial antiguo. En el momento de escribir esto, es la 10.1.1, que espera Selenium 4.42.0 o posterior en el classpath.

Los modelos de aprendizaje automÔtico reparan los localizadores de elementos después de un cambio en la interfaz de usuario, agrupan fallos duplicados en diferentes dispositivos y predicen qué pruebas es probable que falle una confirmación, de modo que una ejecución mÔs corta de Maven cubre el Ôrea de riesgo.

Copilot completa los elementos groupId, artifactId y version a partir de un comentario de una sola línea. A menudo sugiere un número de versión obsoleto, por lo que conviene confirmar las coordenadas en Maven Central antes de confirmar el archivo.

No estrictamente. El cliente Java declara el Selenium artefactos de forma transitiva. Muchos equipos aún fijan explícitamente selenium-java para que la versión sea visible y las actualizaciones sean deliberadas en lugar de accidentales.

Ambos resuelven los mismos artefactos. Maven utiliza XML declarativo y es adecuado para equipos que desean un ciclo de vida fijo. Gradle guiones en Groovy o Kotlin y se compila de forma incremental, lo que resulta Ćŗtil en grandes repositorios multimodulares.

En src/test/java. Surefire solo escanea ese directorio durante la compilación, por lo que una clase que se deja en src/main/java se compila pero nunca se ejecuta, lo que da la impresión de que la suite pasa silenciosamente.

No. Maven resuelve los jars y ejecuta las pruebas únicamente. Inicie el Appium Primero, conecte un dispositivo o emulador al servidor o inicie el servidor desde su método de configuración de prueba o un paso de la canalización de CI.

Consulta el repositorio, inicia el Appium servidor y un dispositivo, luego ejecute mvn clean test. ArchiUtilice target/surefire-reports como artefacto de compilación para que los fallos sigan siendo legibles después de que se destruya el agente.

Resumir este post con: