Comparando e combinando drivers de automação de testes web e mobile

Última atualização: 12 de fevereiro de 2019 — Continuous Testing Expert

Semelhanças e diferenças entre drivers de automação de testes web e mobile, com foco em Ápio e SelênioContinue lendo para descobrir mais.

Existem diversas ferramentas utilizadas para automação de testes web e mobile. Elas variam em funcionalidade, plataformas suportadas e termos de uso. Para este propósito, vamos nos concentrar apenas em duas delas: Appium e Selenium.

Desenvolvedores e testadores usam o framework Appium para a automação de aplicações web, nativas e híbridas para dispositivos móveis. O framework Selenium é usado para a automação de aplicações web. Além disso, o Selenium é escrito em Java, enquanto o Appium é escrito em JavaScript. Embora à primeira vista pareçam diferentes, eles têm algo em comum: Appium e Selenium usam o protocolo webDriver para se comunicar com a plataforma de destino: o Appium com o dispositivo móvel e o Selenium com um navegador web, respectivamente. Geralmente, um script webDriver do Selenium pode ser executado tanto em um navegador de dispositivo móvel quanto em um navegador de computador, realizando as mesmas ações na mesma aplicação web.

A diferença entre os drivers de automação de testes web e mobile

Acima de tudo, a diferença entre a web e o celular. automação de teste A complexidade reside na funcionalidade, nas plataformas suportadas e na configuração do ambiente de teste para executar os testes. O Appium, em particular, atua como um servidor HTTP para o qual existem diversos clientes: Java, JavaScript, Python, C# e Ruby. Na verdade, um cliente Appium é uma camada sobre as bibliotecas do Selenium WebDriver. O Appium, além do Selenium, utiliza um conjunto estendido de APIs do WebDriver, específicas para a interação com dispositivos móveis. Por exemplo, o Appium inclui comandos para suportar gestos multitoque e orientação da tela, para gerenciar dados de geolocalização, para acessar registros do dispositivo e muitos outros.

O servidor Appium permite que os usuários do Appium controlem funções do dispositivo em teste, como a instalação e remoção de aplicativos durante a sessão de teste. Implementações de cliente semelhantes existem para o Selenium. No entanto, um servidor Selenium só é necessário para a execução de testes distribuídos caso seja preciso instalar um Selenium Grid.

Para esclarecer, o Selenium é compatível com os principais navegadores executados nos principais sistemas operacionais de desktop. O Appium é compatível com uma grande variedade de dispositivos iOS e Android, para as versões oficialmente suportadas de ambos. Além disso, o Appium permite a automação de aplicativos do MS Windows. Por outro lado, há uma diferença no esforço necessário para configurar a infraestrutura para testes com Appium e Selenium. Para realizar testes com Appium, é preciso instalar o NodeJS, instalar o Appium, configurar o SDK e os drivers e frameworks específicos do dispositivo. Para um caso de teste com Selenium, não há tantas etapas para configurar o ambiente para desenvolvimento e execução de testes, a menos que você instale o servidor Selenium para executar testes no Selenium Grid. Os diagramas das pilhas Appium e Selenium são mostrados nas imagens abaixo.

Um exemplo de utilização de ambas as estruturas para automação web móvel.

A base comum em ambas as estruturas permite que sejam usadas em conjunto para automação de testes web e mobile, apesar das diferenças listadas acima. Quando precisamos testar uma aplicação web em um navegador mobile, podemos usar tanto o Appium quanto o Selenium, e eles se complementarão em um único teste. Abaixo, você verá um link para um teste simples no GIT, por exemplo, que abre uma página do site Amazon.com no navegador Chrome em um dispositivo Android.

Teste de exemplo para Android.

Os códigos de teste utilizam as bibliotecas Selenium e Appium para interagir com o navegador em um dispositivo móvel. Os objetos do cliente Appium são usados ​​para inicializar um driver de dispositivo, definir o navegador Chrome do Android e controlá-lo. O Selenium é usado para definir o objeto "Desired capabilities" (Recursos Desejados), que controla o driver do dispositivo, o navegador móvel e interage com o aplicativo web (no teste, o site Amazon.com é utilizado), por meio do objeto "By" do Selenium. O uso desses objetos permite o acesso aos elementos web do navegador móvel.

O teste é executado em A plataforma SeeTest – plataforma baseada na nuvem, oferecendo um grande número de navegadores e dispositivos móveis para desenvolvimento e automação de testes web e mobile. Para comparação, existe o teste, que abre nuvem.seetest.io O teste simula a navegação em uma página da web no navegador Google Chrome em um Mac, encontra alguns links na página e clica neles. Nesse caso, são utilizados apenas objetos Selenium, que controlam o navegador remoto na plataforma em nuvem SeeTest e executam as ações especificadas no teste. Confira o código do teste no link abaixo.

Teste de amostra do Chrome.

O segundo teste também é executado na plataforma SeeTest e está pronto para ser utilizado. Ambos os testes podem ser baixados, compilado e executado. Use o comando 'mvn clean install' para instalá-lo. Como ambos os testes devem ser executados na plataforma SeeTest, não se esqueça de adicionar a chave de acesso da sua conta SeeTest às variáveis ​​de sistema antes de iniciar os testes.

O primeiro exemplo acima ilustra os testes com Appium e Selenium e é um exemplo de automação de testes para web e dispositivos móveis. Isso ocorre quando uma aplicação web precisa ser executada tanto em navegadores de desktop quanto em navegadores móveis, o que é bastante comum atualmente.

Um exemplo de utilização do Appium e do Selenium para a automação de aplicações móveis nativas.

Além da necessidade de suporte a diversos navegadores em múltiplas plataformas móveis e de desktop, os aplicativos modernos podem ter vários tipos de cliente: web, desktop e mobile, que, por sua vez, podem ser executados em diversas plataformas de hardware sob diferentes sistemas operacionais. Para um engenheiro de QA, isso significa, acima de tudo, a necessidade de realizar testes em todas as combinações possíveis de hardware, sistema operacional e navegador. Por exemplo, um possível caso de uso, quando dois clientes diferentes são utilizados, é quando um usuário do cliente mobile realiza uma ação e outro usuário do cliente web recebe o resultado dessa ação, ou vice-versa.

Um exemplo disso é uma publicação em uma rede social que precisa ser verificada por diferentes clientes. Outro exemplo é um chat, onde um usuário de um dispositivo móvel envia uma mensagem e um usuário de um dispositivo web recebe a mensagem, ou vice-versa. Do ponto de vista do caso de teste, será necessário imitar a interação entre os dois tipos de clientes: o móvel e o web. Portanto, em um único teste, serão utilizados os frameworks Appium e Selenium, combinando ambos. Neste teste, os objetos Appium são usados ​​para gerenciar o dispositivo móvel, enquanto os objetos Selenium são usados ​​para gerenciar e interagir com o navegador na plataforma desktop. O teste também deverá ser executado no serviço em nuvem SeeTest.

Quanto às implementações, os testes para esses clientes podem ser escritos em módulos separados e executados em paralelo usando o SeeTest para as instâncias correspondentes. Neste exemplo, Selenium e Appium se complementam. Este é mais um exemplo de automação de testes para web e dispositivos móveis.

O framework Appium é baseado em Selenium ou não?

E, por fim, uma observação sobre a automação de aplicativos móveis nativos. Quando escrevemos testes de interface do usuário para esses aplicativos e interagimos com os elementos nas páginas móveis, acessamos esses elementos por meio de um objeto que é uma instância da classe `io.appium.java_client.MobileElement`, que estende a classe `org.openqa.selenium.remote.RemoteWebElement`. Isso significa que os testes para aplicativos móveis nativos usarão o Selenium implicitamente para acessar os elementos da página móvel.

Conclusão

Em resumo, Selenium e Appium não são frameworks isolados, que podem ser usados ​​apenas para automação de testes web e mobile, respectivamente. Pelo contrário, esses frameworks podem ser usados ​​em conjunto em um único teste para avaliar aplicações web em navegadores mobile e para a implementação de casos de teste complexos, que envolvem interações com clientes web e mobile. Todos esses casos de teste podem ser facilmente executados em a plataforma SeeTestEm resumo, a SeeTest oferece uma variedade de dispositivos móveis e navegadores para testes. Além disso, a SeeTest está entre as principais plataformas em nuvem para automação de testes web e mobile.

Para ver como tudo funciona em primeira mão, Clique aqui para um teste gratuito..

Também recomendamos