Appium Dependência do Maven: Configuração com Eclipse Exemplo de projeto

⚡ Resumo Inteligente

Appium O gerenciamento de dependências do Maven permite que um projeto de automação móvel declare o artefato java-client no arquivo pom.xml, de forma que o Maven resolva automaticamente todos os arquivos JAR e a mesma compilação seja executada em qualquer máquina sem a necessidade de downloads manuais.

  • ???? O que o Maven faz: Apache Maven Gerencia o ciclo de vida da compilação e resolve as dependências a partir de um único arquivo pom.xml declarativo.
  • ☑️ Um artefato: A dependência io.appium java-client inclui o Selenium API, driver remoto e arquivos JAR de suporte são usados ​​de forma transitiva.
  • ✅ Disciplina de versão: Combine a versão do cliente Java com a versão correspondente. Selenium O intervalo que ele declara evita o erro NoSuchMethodError em tempo de execução.
  • 🧪 Layout fixo: O Surefire executa apenas as classes em src/test/java, portanto, testes mal posicionados compilam, mas nunca são executados.
  • 🛠️ Linha de comando: O comando `mvn clean test` compila e executa o conjunto de testes, gravando os resultados no diretório `target/surefire-reports`.
  • 📊 Pré-requisitos: O Maven nunca inicia o Appium servidor ou dispositivo, portanto, ambos devem estar prontos antes do início da compilação.

Appium Configuração de dependências do Maven com pom.xml e o artefato java-client.

O que é a Apache Maven?

Apache Maven é um Javaferramenta de gerenciamento e automação de projetos baseada em software. Ele fornece uma estrutura multitarefa para os desenvolvedores facilitarem o ciclo de vida completo da construção para Java aplicações. Maven é pré-definido e declarado em um formato XML chamado POM (Project Object Model) e conhecido como 'pom.xml'. Também pode ser usado para outras linguagens como C#, Scala, Ruby, etc.

Utilizando o framework Maven, você pode gerenciar facilmente as seguintes tarefas em qualquer projeto:

  • Ciclo de construção
  • Documentação do projeto
  • Verificações de relatórios
  • Gestão Scrum
  • Informações da versão

Os usos básicos do Maven são:

  • Aplica uma estrutura de diretório padrão.
  • Fornece uma estrutura de projeto reutilizável e fácil de manter.
  • Resolva dependências de pacotes.
  • Fornece uma estrutura de gerenciamento de configuração.

Essa capacidade de resolução de dependências é exatamente o que um Appium necessidades do projeto, porque o Java cliente desencadeia uma série de Selenium jars que ninguém quer baixar manualmente.

Baixar Appium Dependências Maven

Antes de começar a escrever um Appium Para realizar testes de dependência com o Maven, você precisa baixar o... Appium Dependência do Maven — a Appium Baixar arquivo JAR — do Site do repositório central do MavenA captura de tela abaixo mostra a listagem do artefato java-client no Maven Central, onde todas as versões publicadas e seus respectivos trechos de código prontos para uso estão disponíveis.

Appium Listagem do artefato java-client na página de busca do repositório central do Maven

Ou adicione diretamente o artefato POM.xml mencionado abaixo:

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

⚠️ Nota de versão: da 3.4.1 A coordenada acima é o exemplo original e ainda mostra o formato correto do bloco. Ela é anterior ao protocolo WebDriver da W3C, portanto, um novo projeto deve atualizar a versão. No momento da redação deste documento, a versão atual no Maven Central é 10.1.1, o que exige Selenium 4.42.0 ou posterior.

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

Por favor, passe por nossa Tutorial do Maven para aprender como configurar o Maven com Eclipse.

Appium Estrutura do projeto Maven e dependências necessárias

O Maven impõe um layout fixo, e conhecê-lo evita a maior parte da confusão que surgirá mais adiante neste guia. Um projeto gerado contém quatro locais importantes:

  • pom.xml — o Modelo de Objeto do Projeto na raiz do projeto, onde cada dependência e plugin é declarado.
  • src / main / java — classes de aplicação e auxiliares.
  • src/test/java — classes de teste, e o único diretório que o plugin Surefire verifica quando você executa uma compilação.
  • alvo — relatórios de saída e testes compilados, regenerados a cada compilação.

O Appium java-client é a única dependência obrigatória, pois declara o Selenium API, driver remoto e artefatos de suporte transitivamente. Muitas equipes ainda fixam Selenium De forma explícita, para que a versão fique visível em um único local, e adicione um executor de testes:

<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>

Mantenha as duas versões compatíveis. Uma versão do cliente Java declara o Selenium gama que suporta e misturando um cliente antigo com um muito mais recente Selenium é a causa mais comum de um erro NoSuchMethodError em tempo de execução. repositório java-client Documenta o emparelhamento para cada versão.

Aplicativo de teste com Appium e Maven

Com a dependência estabelecida, o Eclipse O fluxo de trabalho abaixo cria um projeto executável do zero. Após configurar o Appium Java Plug-in do Maven em EclipseO espaço de trabalho está pronto para testar qualquer coisa. Android .apk aplicação com Appium e Maven, como mostrado no Appium Exemplo de projeto Maven abaixo.

Passo 1) Nesta etapa,

  1. Vá para NOVO >> selecione o projeto Maven
  2. Clique no botão 'próximo'

O assistente de novo projeto é aberto com o Projeto Maven selecionado, como mostrado aqui.

Eclipse Assistente para Novo Projeto com Projeto Maven selecionado

Passo 2) Em seguida, na janela 'Novo Projeto Maven', digite 'Appium Insira 'Teste' nas colunas ID do Grupo e ID do Artefato. Nesta etapa, você deve inserir:

  1. ID do grupo
  2. ID do artefato
  3. Versão
  4. Embalagens
  5. Nome e Descriptíon
  6. Acabamento

O formulário Novo Projeto Maven preenchido tem a aparência da captura de tela abaixo.

Nova janela de projeto Maven com ID do grupo, ID do artefato, versão e empacotamento preenchidos.

Clicar no botão Concluir abrirá uma nova turma com o ID de grupo definido (AppiumNome de teste.

Passo 3) Para começar com o Appium No script, clique com o botão direito do mouse em 'src/main/java' na janela do explorador à esquerda. Em seguida, selecione Novo >> classe. Escreva o Appium código dentro da classe selecionada.

O menu de contexto usado para criar essa classe é mostrado abaixo.

O menu de contexto (clique com o botão direito do mouse) em src/main/java mostra as opções Novo e Classe. Eclipse explorador

Passo 4) No mesmo projeto, clique em pom.xml no menu do explorador à esquerda. Todas as dependências estarão visíveis por padrão na aba 'pom.xml'. Veja a imagem abaixo.

guia do editor pom.xml em Eclipse listando as dependências resolvidas do projeto

Se o arquivo pom.xml padrão não existir, basta adicionar todos os arquivos Maven. Appium dependências, extracExtraído do site do repositório central do Maven:

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

O arquivo pom.xml editado com o Appium As dependências adicionadas são mostradas abaixo.

Visualização do código-fonte do pom.xml após a Appium A dependência java-client foi colada em

Passo 5) Agora, clique com o botão direito do mouse em 'pom.xml' no explorador à esquerda ou no código XML do 'AppiumProjeto de teste. Em seguida, clique na opção 'Executar como >> Maven Clean', conforme mostrado abaixo.

Eclipse Submenu "Executar como" com a opção "Maven Clean" selecionada.

Durante a execução, você poderá ver todos os arquivos JAR relacionados ao Maven e uma mensagem de sucesso, como na saída do console abaixo. É assim que você executa um Appium Java Teste de dependência Maven do cliente em um ambiente configurado com Maven.

Eclipse console mostrando os arquivos jar do Maven baixados e a mensagem de sucesso da compilação

Como executar Appium Testes com comandos Maven

O Eclipse O menu é conveniente, mas a mesma compilação precisa ser executada sem supervisão em um servidor de compilação, e lá a linha de comando é a única opção. Abra um terminal na pasta que contém o arquivo pom.xml e use estes comandos.

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

Cada um tem uma função específica:

  • mvn limpo apaga o target diretório para que nada obsoleto sobreviva para a próxima compilação. Este é o comando o Eclipse O passo a passo acima ativa os gatilhos.
  • teste limpo mvn Compila o projeto e executa as classes de teste. O plugin Maven Surefire as detecta automaticamente. src/test/java, usando os padrões de inclusão padrão Test*.java, *Test.java, *Tests.java e *TestCase.java.
  • mvn instalação limpa Executa os testes e, em seguida, coloca o artefato empacotado em seu repositório local, para que outro projeto possa depender dele.
  • mvn test -Dtest=LoginTest Isso restringe a execução a uma única classe durante a depuração.

Dois pontos costumam enganar as pessoas. Primeiro, o Appium O servidor já deve estar em execução e um dispositivo ou emulador deve estar conectado antes do início da compilação, pois o Maven não inicia nenhum dos dois — verifique o dispositivo com um adb Verifique primeiro. Em seguida, os resultados são gravados em target/surefire-reports, que é a pasta que um trabalho de CI deve arquivar. Guia de utilização do Surefire Abrange as opções de configuração em detalhes, e os mesmos comandos executam um Appium suíte de Jenkins.

comum Appium Erros do Maven e como corrigi-los

A maioria das falhas em um Appium Os problemas de configuração do Maven decorrem de algumas causas recorrentes, e não do próprio código de teste. A tabela abaixo relaciona cada sintoma à sua solução usual.

Sintoma Causa provável Fixar
Não foi possível resolver as dependências para io.appium:java-client String de versão incorreta ou falta de acesso à rede do Maven Central. Copie as coordenadas diretamente da listagem do Maven Central e execute a compilação novamente.
NoSuchMethodError ou NoClassDefFoundError de um Selenium classe As versões java-client e selenium-java são incompatíveis. Combine o Selenium versão para o intervalo declarado pela versão do cliente Java
Os testes compilam, mas nenhum é executado. As classes de teste estão localizadas em src/main/java, ou o nome da classe não corresponde a um padrão de inclusão Surefire. Mova-os para src/test/java e nomeie a classe de forma que termine com Test.
Conexão recusada na porta 4723 O Appium O servidor não está em execução. Comece o Appium servidor antes da compilação
Capacidade inválida ou não suportada Nomes de recursos legados usados ​​com um driver moderno Revveja o atual capacidades desejadas para sua plataforma
versão principal do arquivo de classe não suportada O JDK usado pelo Maven difere do nível do compilador no arquivo pom.xml. Alinhe as propriedades maven.compiler.source e target com a sua instalação. JDK

Quando uma compilação falha, leia o primeiro erro exibido pelo Maven, e não o último. As linhas posteriores geralmente são consequências da ausência do primeiro artefato.

Perguntas Frequentes

Utilize a versão mais recente listada no Maven Central, em vez de uma versão copiada de um tutorial antigo. No momento da redação deste texto, a versão mais recente é a 10.1.1, que espera... Selenium 4.42.0 ou posterior no classpath.

Os modelos de aprendizado de máquina corrigem os localizadores de elementos após uma alteração na interface do usuário, agrupam falhas duplicadas em diferentes dispositivos e preveem quais testes provavelmente serão quebrados por uma alteração, de modo que uma execução mais curta do Maven cubra a área de risco.

O Copilot completa os elementos groupId, artifactId e version a partir de um comentário de uma linha. Frequentemente, ele sugere um número de versão desatualizado, portanto, confirme a coordenada no Maven Central antes de confirmar o arquivo.

Não exatamente. O cliente Java declara o Selenium artefatos transitivamente. Muitas equipes ainda fixam explicitamente o selenium-java para que a versão seja visível e as atualizações sejam intencionais em vez de acidentais.

Ambos resolvem os mesmos artefatos. O Maven usa XML declarativo e é adequado para equipes que desejam um ciclo de vida fixo. Gradle scripts em Groovy ou Kotlin e compila incrementalmente, o que ajuda em grandes repositórios com múltiplos módulos.

Em src/test/java. O Surefire só verifica esse diretório durante a compilação, então uma classe deixada em src/main/java compila, mas nunca é executada, o que parece ser um teste passando silenciosamente.

Não. O Maven resolve arquivos JAR e executa apenas testes. Inicie o Appium Primeiro, conecte um dispositivo ou emulador ao servidor ou inicie-o a partir do seu método de configuração de teste ou de uma etapa do pipeline de CI.

Confira o repositório e inicie o Appium servidor e dispositivo, depois execute mvn clean test. ArchiUse o arquivo target/surefire-reports como artefato de compilação para que as falhas permaneçam legíveis mesmo após a destruição do agente.

Resuma esta postagem com: